class Time
{
public:
int shi,fen,miao;
};
1.保护权限和私有权限类外不可访问。
区别是在继承时:保护权限儿子可以访问,但私有权限不能。
2.struct 默认权限是public,class默认权限是private。
将成员属性设置为私有的两个好处:
- 可以自己控制读写权限
- 对于写权限,我们可以检测数据的有效性
3.构造函数的分类:
按参数分为:有参构造和无参构造
按类型分为:普通构造和拷贝构造
calss Person
{
public:
int age;
Person()
{
cout<<"Person的无参构造函数"<<endl;
}
Person(int a)
{
age=a;
cout<<"Person的有参构造函数"<<endl;
}
Person(const Person &p)
{
age=p.age;
cout<<"Person的拷贝构造函数"<<endl;
{
~Person()
{
cout<<"Person"<<endl;
}
};
4.构造函数的调用:
括号法 Person p1; 注意调用默认构造函数不要写成Person p1();
编译器会当成函数声明。
Person p2(10); 调用有参构造函数
Person p3(p2); 调用拷贝构造函数
显示法 Person p1;
Person p2=Person(10);
Person p3=Person(p2);
像这样等号右边为匿名对象,系统会在执行完当前行之后将其回收
不要利用拷贝构造函数初始化匿名对象,编译器会认为Person(p3)====Person p3 对象声明
隐式转换法
Person p1;
Person p2=10;
Person p3=p2;