与c的结构体类似,用于对一个对象的各种 属性进行定义与描述。

不同的是,这里有public和private的区别:public类外部可以使用,例如main函数中定义一个student stu,那么stu.Print没有问题,但是stu.x报错了,因为private内的东西只有类内部成员才可以使用。
另外,类class有结构体没有的构造函数(与类同名的特殊函数)。它的主要工作其实是完成对象的初始化工作。
默认构造函数包含三个:分别是无参构造函数、全缺省构造函数、编译器自动为我们生成的构造函数(如果自己不定义就是这个,但凡自己定义了一个就不会自动生成另外一个)。
自定义类型的构造函数
有参的构造函数
特点:
函数名称与类名相同;
无返回值;
创建类类型的对象时(对象实例化时)由编译器自动调用,保证每个数据成员都有一个合适的初始值;
在该对象的整个生命周期中只会调用一次;
构造函数支持函数重载。
例如:
student(int a,int b):x(a),y(b){},为x和y初始化。
这个写法与以下相同
student(int a,int b)
{
x=a; y=b;
}

第19行,定义对象的同时,构造函数同时被调用。
自定义类型,例如class,struct(class student就是student)类型,要用自定义类型的无参构造函数,不 然会报错;
其他的例如int,double类型可以不做处理,自动就是随机值。

如果有多个构造函数,函数重载,会根据对象声明时的参数个数对应class中的构造函数进行相应地调用。


文章讲述了C++中的类机制,强调了public和private访问修饰符的区别,以及构造函数在对象初始化中的作用。构造函数允许初始化类的成员变量,且支持函数重载。无参构造函数和有参构造函数是其两种常见形式,在创建对象时自动调用。同时指出,对于自定义类型,必须提供构造函数,而基本类型如int、double等则无需特别处理。
1106

被折叠的 条评论
为什么被折叠?



