求助,提示参数列表没有匹配的构造函数!

短笛小魔王 短笛小魔王 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
谭浩强c++,例子10.4,编译无法通过,提示参数列表没有匹配的构造函数.....请教下!

class String
{
public:
String()
{
p = NULL;
}
String(char *str);
void display();
private:
char *p;
};

String::String(char *str)
{
p = str;
}

void String::display()
{
cout << p;
}

int main()
{
String string1("Hello"), string2("Book"); //编译的时候这里报错,提示没有匹配的构造函数!
string1.display();
cout << endl;
string2.display();
return 0;
}
...全文

相关推荐

C++类构造函数初始化列表

构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如: class CExample { public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample() { a=0; b=8.8; } };   上面的例子中两个构造函数的结果是一样的。上面的构造函数(使用初始化列表的构造函数)显式的初始化类的成员;而没使用初始化列表的构造函数是对类的成员赋值,并没有进行显式的初始化。   初始化和赋值对内置类型的

weixin_38656226

C++ 构造函数初始化列表的好处

C++ 类对像构造时,需要对类成员变量完成初始化赋值操作。使用初始化列表完成这步操作在性能上有益处。什么好处呢?摆道理显得不够彻底。看书不如做实验。让我们结合执行过程来查看。考虑如下示例代码:   Derive 类构造函数两个 Base 类型的参数,分别赋给该类两个 Base 类型的成员变量 b1、b2,一个使用初始化列表,一个使用等于号赋值。输出结果如下:   前两行输出是主函数前两行构造 b1、b2 对像时调用的带参构造函数。第三行是初始化列表构造 b1 时调用的复制构造函数。第四行调用了一次默认构造函数……第四行是哪儿来的?   这里需要陈述一下“复制构造函数”和

weixin_38713203

C++构造函数初始化列表

关于“C++构造函数初始化列表 ”的实例分析

u010070896

c++基础语法:构造函数初始化列表

C++为类中提供类成员的初始化列表 类对象的构造 顺序是这样的:1.分配内存,调用构造函数 时,隐式/显示的初始化各数据 成员2.进入构造函数后在构造函数中执行一般计算 使用初始化列表有两个原因: 1.必须这样做:如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,而没有默认构造函数,这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成第一步,就会报错。 代码如下:class  ABC  … { public :          ABC( int  x, int  y, int  z); priv

weixin_38694566

c++ 构造函数的初始化列表

构造函数的初始化列表仅仅指定用于初始化成员的值,并不指定这些初始化执行的次序。成员初始化的次序就是定义成员的次序,第一个成员首先被初始化,然后是第二个,依次类推

weixin_38682518
评论 5
收藏 已收藏
分享
返回顶部
短笛小魔王
C++ 语言 65,214 成员 250,514 内容