C++实例化对象和开辟内存空间
时间: 2023-11-14 18:19:55 浏览: 39
当我们在 C++ 中实例化一个对象时,会自动分配内存空间来存储该对象,并且会调用该对象的构造函数来初始化这块内存空间。
例如,我们定义了一个类:
```c++
class Person {
public:
string name;
int age;
void sayHello() {
cout << "Hello, my name is " << name << ", I'm " << age << " years old." << endl;
}
};
```
然后在程序中创建一个 Person 对象:
```c++
Person p;
```
在这里,我们创建了一个名为 p 的 Person 对象。编译器会自动为 p 分配内存空间,并且调用 Person 类的默认构造函数来初始化这块内存空间。在这个例子中,p 的 name 和 age 成员变量都会被初始化为默认值。如果我们想自己定义构造函数来初始化成员变量,可以像这样:
```c++
class Person {
public:
string name;
int age;
Person(string n, int a) {
name = n;
age = a;
}
void sayHello() {
cout << "Hello, my name is " << name << ", I'm " << age << " years old." << endl;
}
};
```
然后我们可以这样创建一个 Person 对象:
```c++
Person p("Tom", 20);
```
在这里,我们通过构造函数传递了两个参数,用来初始化 p 的 name 和 age 成员变量。编译器会自动为 p 分配内存空间,并且调用 Person 类的构造函数来初始化这块内存空间。