c++带参构造函数怎么初始化数据成员?

2025-02-24 23:20:13
推荐回答(5个)
回答1:

带参数的构造函数可以传递参数区初始化类的数据成员。

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

示例:

#include 
using namespace std;
class time
{
public:
time(int mHour, int mMinute, int mSec)//constructor.构造函数
{
hour=mHour;
minute=mMinute;
sec=mSec;
}
void show_time();
private:
int hour,minute,sec;
};
int main()
{
class time t1(12,11,50);//调用构造函数
t1.show_time();
return 0;
}
void time::show_time()
{
cout<}

结果:

12:11:50

回答2:

应该是:
Name=name;
即把构造函数中的参数传递给类的私有成员:char *Name,;
这样,在主函数中
int main()
{
Person p("bob");//会调用Person类的带参构造函数,将“bob”作为实参传入,作为p对象的Name

}

回答3:

Name在构造函数分配内存,赋值传入字符串,用完后在析构里要记得回收内存

Person::Person( char *name )
{
if (name)
{
Name = new char[strlen(name) + 1];
strcpy(Name, name);
}
else
{
Name = 0;
}
}

回答4:

Person::Person(char *name){
    Name = new char[stelen(name)+1];//申请空间
    strcpy(Name,name);
}
再给你写个析构把,自己申请的空间必须自己释放掉。
Person::~Person(){
    delete Name;
}
没编译,你试下不知道有没有问题

回答5:

classPerson
{
char *Name;
public:
Person(){};
Person( char *name );
voidPrintName();
};
Person::Person( char *name )
{
// 请补充完整
name=Name;
}