c c++里面的不懂?

来源:百度知道 编辑:UC知道 时间:2024/05/26 17:57:46
当我们在定义一个类或一个结构时,我们只是在“组装”一个新的数据类型。而并没有实际定义一个变量,所以C++不允许在定义一个类的内部,对它的成员数据赋值
上面的是规定,运用计算机原理可以说下为什么吗?

“当我们在定义一个类或一个结构时,我们只是在“组装”一个新的数据类型。而并没有实际定义一个变量,所以C++不允许在定义一个类的内部,对它的成员数据赋值 ”

面向对象的C++语句中的类,为用户自定义类型,它尽可能的模仿系统内置变量一样的操作,使得用户象使用内置变量一样使用用户自定义类型,而看不出区别!

如果说“C++不允许在定义一个类的内部,对它的成员数据赋值”这种说法不正确,C++构造函数就是在类内部,是构造的对象具有初始化数据,而这些数据并非要在类对象定义后再赋值!
如:
class Complex
{
public:
Complex(double r = 0, double i = 0) : r_(r), i_(i){}
private:
double r_;
double i_;
};
事实上,类确实是对固有数据类型的“组装”,但固有数据类型可以在定义时赋初值,那么这些组装的固有数据类型变量,组成的类不就获得了初始值。

只是预定义一个数据结构或类型,并没有分配内存区域,所以你无法为其赋值.只有在用你定义的结构或类创建一个对象的时候,才会实质性的分配一块内存区域,这个时候才能赋值到内存.

你可以在构造函数里进行赋值,因为类是一个抽象的东西,抽象了对象的特性,如果赋值的话,就破坏了这一原则.因为每个对象的值都是不一样的,这并不是计算机原理问题,原理上也是可以实现的,但是不那么做.