小编学完c++给你们分享下笔记
Date() = default; //default 默认构造函数
Date() = delete; //delete 禁用构造函数 禁止拷贝 赋值运算符 delete[] a动态分配删除
explicit Date(); // 就是禁止含隐调用隐式转换
friend void print();// friend是友元 在类中声明 函数或外部类的友元 可以在外部直接访问这个类的 私有或保护成员函数
mutable int a //a是mutable 成员变量 是可以被修改的
关于public:公共的可以看我第一张添加链接描述
下面详解构造函数
class Date
{
int a = 2000, b{ 1 }, c{ 1 }, s{ 5 };
public:
Date() = default; //default 默认构造函数
// Date() = delete; //delete 禁用构造函数 禁止拷贝 赋值运算符
// explicit Date(); // 就是禁止含隐调用隐式转换
Date(Date &day1) : a{ day1.s }, b{ day1.s }, c(day1.s) { } //Date() :a{ 2 }, b{ 3 }, c(4){} 也可以给默认构造函数值初始化 初始化成員列表 構造函數後面加: 这总叫硬拷贝
Date(int x,int y,int n){
a = x; b = y; c = n;
cout << "構造函數" << endl;
print();
} //默认构造这些
Date &setc(int d){ //这里是取调用地址取的是day1
c = d;
return *this; //返回指针对象引用 可以.
}
Date &setb(int d){
b = d;
return *this; //返回指针对象引用 可以.
}
Date *seta(int d){ //因为这里释放了调用对象day1所以返回的下面不能继续调用
a = d;
return this; //返回指针
}
Date print(){
cout << a << '-' << b << '-' << c<<'\n';
return *this;
}
};
int main(){
Date day(1,2,3); //在这边声明就会直接调用上面的构造函数 有参
Date day1; // 調用默認構造函數
Date(day2); //Date(Dete &day1) :a{ day1.a }, b{ day1.b }, c(day1.c){} 也可以给默认构造函数值初始化 初始化成員列表 構造函數後面加: 这总叫硬拷贝
day1.print(); //默认的值
day2.print();
day1.setc(2001).setb(20).seta(1); //day1.setc(2001) 返回的是day的指针
day1.print().print(); //如果调用那次那边555就会被赋值
day2.print().print().print();
day2.print();
getchar();
return 0;
}