#include<iostream> using namespace std; class Car { char* pName; int id; int m; public: Car(string name) { } };
时间: 2023-12-06 21:43:58 浏览: 67
在这段代码中,我们定义了一个名为 Car 的类,它有三个私有成员变量:pName(指向 char 类型的指针)、id 和 m。在构造函数中,我们可以看到只有一个字符串参数 name,但是没有实际的初始化操作,这会导致代码无法编译通过。你需要补充构造函数的实现来初始化 pName 字符串指针。此外,你也需要确定其他成员变量的初始化方式以确保代码的正确性。
相关问题
#include<iostream> using namespace std; class Car { char* pName; int id; int m; public: Car(string name) { } }; 怎么将string name转换为char*pName
您可以使用`c_str()`函数将`std::string`类型转换为`const char*`类型,然后再将其复制到`char*`类型的变量中。下面是修改后的代码:
```
#include <iostream>
using namespace std;
class Car {
char* pName;
int id;
int m;
public:
Car(string name) {
pName = new char[name.length() + 1];
strcpy(pName, name.c_str());
id = 0;
m = 0;
}
~Car() {
delete[] pName;
}
};
int main() {
Car car("My car");
return 0;
}
```
在构造函数中,我们使用`new char[name.length() + 1]`为`pName`分配内存,该内存可以容纳字符串及其终止符。然后我们使用`strcpy()`函数将`name.c_str()`复制到`pName`中。最后,在析构函数中,我们使用`delete[]`释放内存。
阅读全文