对于班级dataCard
,这里是其构造函数的实现(此处name
是const 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
的成员,在将元素放入之后调用它时可以正确表示向量。问题出在哪里?