C++中类定义一个对象,如类名 对象名(数字);这是什么意思?

如题所述

c++中的类除了具有封装的意味外,还有一点就是要使得定义的类可以像内置的类型(如int等)一样容易让人理解。例子:
#include <stdio.h>
class A{ // 定义一个类A
public:
A(int a) : n(a){} // 类A的构造函数,参数为一个int型变量a
private:
int n; //类的成员变量
};
main()
{
A a(3); // 定义一个类A的对象a,使用3去初始化a,即调用A(3)来初始化a.n
int b(3); // 与内置类型一样,定义一个int变量b,使用3去初始化,只不过可以理解为int的构造函数是语言已经做好了的。
}追问

那A(int a):n(a){}是什么

追答

是类A的构造函数,将形参a的值赋给成员变量n。所以执行A a(3),就会调用该构造函数,使得对象a的成员n值为3啦。

追问

构造函数内容n(a)为什么不写在括号里面呢?

追答

这是构造函数的初始化列表使用方法,在这里与写在{}里面是一样的。
即等价于A(int a) { n = a;},但是有的成员变量是只能在初始化列表里面赋值,比如引用类型成员变量。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-22
c++中类对成员函数及成员变量等进行封装,只有通过定义类的对象,才能对类的成员函数等进行调用,而数字就是对该定义对象的初始化值。
类就好比一份工程样图,而对象就好比一辆小轿车,一份工程样图可以制造出多辆小轿车
第2个回答  2012-11-22
相当于标示符一样,只要有对象名,就能访问对象名指向的内存中的数据!就是给数据加上名字!就相当于你的名字,标识了你这个人!
相似回答