C++对象的三大特性为:封装,继承,多态
封装的意义:
(1)将属性和行为作为一个整体,表现生活中的事务
(2)将属性和行为加以权限控制
简单实现类的封装(并不完善)
#include<iostream>
#define p 3.14
using namesapce std;
class circle
{
public:
m_r;//半径
double calculate()
{
return m_r*2*p;
}
};
int main()
{
class circle cir;
cir.m_r=10;
cout<<cir.calculate()<<endl;
}
C++中访问权限分为三种:
public:
公共权限//类内,类外都可以访问
protected:
保护权限//类外不能访问,类内可以访问,子类可以访问父类。
private:
私有权限://类外不能访问,类内可以访问
C++中的
class和struct的区别
struct默认访问权限是公共的public:
class的默认访问权限是私有的private:
简单使用一下public和private
例子#include<iostream>
using namespace std;
class Point
{
private:
int x;
int y;
public:
void set_point(int x,int y)
{
this->x=x;
this->y=y;
}
int get_x()
{
return x;
}
int get_y()
{
return y;
}
};
class Circle
{
private:
Point center;
int m_r;
public:
void set_r( int m_r)
{
this->m_r=m_r;
}
void set_center(Point center)
{
this->center=center;
}
int get_r()
{
return m_r;
}
Point get_center()
{
return center;
}
};
void test(Point p,Circle c)
{
if(((p.get_x()-c.get_center().get_x())*(p.get_x()-c.get_center().get_x())+(p.get_y()-c.get_center().get_y())*(p.get_y()-c.get_center().get_y()))==(c.get_r()*c.get_r()))
{
cout<<"圆上"<<endl;
}
else if(((p.get_x()-c.get_center().get_x())*(p.get_x()-c.get_center().get_x())+(p.get_y()-c.get_center().get_y())*(p.get_y()-c.get_center().get_y()))>(c.get_r()*c.get_r()))
{
cout<<"圆外"<<endl;
}
else
{
cout<<"圆内"<<endl;
}
}
int main()
{
class Point p;
p.set_point(0,0);
class Circle c;
class Point center;
c.set_r(2);
center.set_point(1,1);
c.set_center(center);
test(p,c);
}