c++结构体和类
Kong Liangqian Lv6

结构体存在连续的内存上,在做指针操作的时候有可能出错

c++内存申请的时候还需要做多一步,即调用构造函数,他不像是C语言里面的结构体,申请完了就是原始的内存,

删除类对象的时候。比如

1
2
3
4
Student *class1 = new Students[3]{
{"Tom", 2000, true},
{"Bob", 1994, False}
};

删除的时候需要用[]

1
delete []class1

如果仅仅是使用了

1
delete class1

他只会调用第一个元素的析构函数,其他元素的析构函数不会调用

友元函数

  • 可以访问类中所有对象
  • 不是类的成员函数

比如在写<< 运算符重载的时候,我们不可以进入<<所在的类中直接添加函数啊,这个是标准库中的类。所以此时友元函数就派上了用场

类型转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 隐式类型转换
operator int() const {
do_something;
return a_num;
}

// 显式类型转换,如果添加了这,就说明一定要显式的调用
explicit float() const {
do_something;
return a_float;
}
your_type t1;
int m = t1; // 隐
float n = float(t1); //显

注意

1
2
3
4
5
6
7
8
your_type t2 = 80; //这里调用的构造函数

your_type t3;
t3 = 80; // 这里调用的是=号运算符

your_type &operator=(int m) {
do;
}
 Comments