复制构造函数和const char *

时间:2014-11-21 13:40:08

标签: c++ copy-constructor

对于班级dataCard,这里是其构造函数的实现(此处nameconst char*类型的公共成员:

dataCard::dataCard(const char* fname) {
  ...
  name = fname;
  ...
}

复制构造函数:

dataCard::datCard(const dataCard& rhs) {
  ...
  name = rhs.name;
  ...
}

稍后在main中,我按如下方式初始化dataCard类型的对象

dataCard card("myCard");

并尝试打印其名称

cout << card.name;

我显然得到了

myCard

然而,当我把这个对象放在一个向量

中时
vector<dataCard> cards;
cards.push_back(myCard);

并尝试以这种方式打印卡的名称

cout << cards[0].name;

名称未正确表示。我得到一些奇怪的未知符号序列而不是预期的myName

我怀疑复制构造函数和类型const char*存在问题,因为我的类中有另一个类型char的成员,在将元素放入之后调用它时可以正确表示向量。问题出在哪里?

0 个答案:

没有答案