构造函数的参数有 char *pname,在调用改造函数是参数列表应该传入什么?
时间: 2024-02-25 09:59:14 浏览: 189
在调用构造函数时,应该传入一个 char 类型的指针,指向一个以 null 结尾的字符串,作为对象的名称。例如:
```
MyClass obj("Object1");
```
其中 "Object1" 是一个以 null 结尾的字符串,作为对象的名称传递给了构造函数的参数 char *pname。
相关问题
C++中 函数的参数列表中char *pName是什么意思,如果在调用函数时 该输入什么实际参数
在C++中,函数的参数列表中的`char* pName`表示函数参数pName是一个指向字符数组的指针。也就是说,在函数内部,我们可以通过这个指针来访问传递给该函数的字符数组。
在调用函数时,需要传递一个char类型的数组或者一个指向char类型数组的指针作为实际参数,这个数组存储了需要传递给函数的字符数据。例如:
```cpp
void myFunction(char* pName);
int main()
{
char name[] = "John Smith";
myFunction(name);
return 0;
}
```
在上面的例子中,我们定义了一个名为`myFunction`的函数,它的参数列表中有一个`char* pName`参数。在主函数中,我们定义了一个char类型的数组`name`,并将`name`作为实际参数传递给`myFunction`函数。
#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[]`释放内存。
阅读全文
相关推荐
















