Open saltfish666 opened 6 years ago
构造函数
复制函数
类型转换构造函数 当我们尝试吧一个值赋值给类A的实例时,都知道简单的来说是不行的,但是C++编译器尝试用构造函数给右值初始化。。。(理论上不一定是单参数构造函数,但是C++没提供多赋值的方法,你无法利用多参数构造函数)
析构函数
#include <iostream>
using namespace std;
class Complex{
int id;
public:
Complex(int i){
id = i;
cout<<"id="<<id<<"courtor \n";
}
~Complex(){
cout<<"id="<<id<<"die \n";
}
};
Complex c1(1);
void func(){
cout<<"func beagin \n";
static Complex d2(2);
Complex d3(3);
cout<<"func end \n";
}
int main(){
Complex c1(4);
{
Complex c2(5);
}
func();
Complex c3 = 6;
return 0;
}
/*
id=1courtor
id=4courtor
id=5courtor
id=5die
func beagin
id=2courtor
id=3courtor
func end
id=3die
id=6courtor
id=6die
id=4die
id=2die
id=1die
*/
using namespace std;
class Hi{ public: void func(Complex c); };
class Complex{ int id; public: void Complex(int i){ id = i; } friend void Hi::func(Complex c); };
void Hi::func(Complex c) { cout<<c.id; }
int main(){
Complex c = 3;
Hi h;
h.func(c);
return 0;
}
编译一直错,难受
### this 的来源
https://www.bilibili.com/video/av10046030/?p=23
class A{ int i; public: void Hi(){ cout<<"hello"; } };
int main(){
A* p = NULL;
p->Hi();
return 0;
}
体现纯函数的特性,不会修改所在对象,语法层面的支持。
子类到底从父类继承了什么?
class Master;
class Dog{
//Dog d; wrong
Master *m;
};
class Master{
Dog d;
};
int main(){
cout<< sizeof(Master);
}
class Master;
class Dog{
//Dog d; wrong
Master *m;
};
class Master{
Dog *d;
};
int main(){
cout<< sizeof(Master);
}
class B;
class A{
public:
int age = 10;
void hello(){
cout<<age<<"\n";
}
};
class B:public A{
int age = 3;
public:
void hi(){
cout<<A::age<<"\n";
cout<<age<<"\n";
}
};
int main(){
cout<< sizeof(A)<<"\n";//4
B b;//10
b.hi();//3
b.hello();//10
}
/*是不是这样理解,子类的成员变量和父类同名,就会覆盖之;(sizeof 证明)
C++ 中 类就是结构体和与结构体绑定函数,子类继承自父类的函数依然绑定了父类的结构体?*/
函数