成员变量不会保存从函数成员添加到它的值
Member variable does not save value added to it from member from functiion
您好,我有一个小问题,我正在尝试从成员函数为类中的某个成员变量赋值。一切似乎都很好,但是一旦我的程序返回到 EAN::read(...);成员变量 -->"╠╠╠╠╠"中现在有奇怪的字符。任何人都可以向我解释我做错了什么?谢谢。
///My class ////
class EAN
{
char string[13];
char strStyle[18];
char styles[2];
char area[6];
char publisher[8];
char title[8];
bool registered;
public:
///and member functions here//
};
////First member function that is called///
bool EAN::read(std::istream& is, const Prefix& list){
char str[13];
bool keepgoing = false;
do{
cout << "Enter a EAN(0 to quit): ";
is >> str;
if (str == nullptr || strlen(str) < 13){
keepgoing = false;
registered = false;
}
else{
keepgoing = true;
EAN(str, list); ///this is where member variable will be assigned//
registered = true;
std::cout << "this is area" << area << endl;
}
} while (keepgoing == false);
return keepgoing;
}
////////Here is the constructor that assigns the values to member variable//
EAN::EAN(const char* str, const Prefix& list){
int keepgoing = 0, j = 3, i = 0;
string[13] = ' ';
strStyle[18] = ' ';
area[6] = ' ';
publisher[8] = ' ';
title[8] = ' ';
if (isValid(str) == 1 && str[0] == '9' && str[1] == '7'|| str[2] == '8' || str[2] == '9') {
keepgoing = 1;
strcpy(string, str);
if (isRegistered(list) == true){
char _area[6];
int lengthArea = 0;
while (i < 5) {
_area[i] = str[j];
_area[i + 1] = ' ';
if (list.isRegistered(atoi(_area))) {
strcpy(area, _area); **<--- ///assign value to member variable.///**
lengthArea = strlen(area);
i = 6; // exit loop
keepgoing = 1;
}
else
{
i++;
j++;
}
}
.......more coding pretty same as above.
}
所有这些
值,您都在注销分配内存的末尾:
string[13] = ' ';
strStyle[18] = ' ';
area[6] = ' ';
publisher[8] = ' ';
title[8] = ' ';
如果要将最后一个字符设置为 null,请按以下步骤操作:
char string[13];
string[12] = ' ';
因为索引为零;
嘿伙计
们感谢您的帮助,如果您仔细观察,我会弄清楚,伙计们,我在成员函数中调用了构造函数,但我是为了返回我使该构造函数分配的内容。
所以我错过了 *this = EAN(str, list);
谢谢你们的帮助。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 添加静态constexpr成员是否会更改结构/类的内存映射
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 将私有数据成员添加到野牛生成的类中
- 如何在友元函数中使用静态成员而不添加前缀 [类名]::
- 如何添加依赖于类本身的模板成员变量
- '将成员函数仅添加到类的专用模板
- QT:添加到QMenu后,谁是QActionGroup成员的父级
- 添加字符串类型的类成员会导致调用基类函数而不是子函数
- C 模板将某些类型的成员添加到类中
- 如果在C++中将成员添加到类中,则会导致编译时错误的技术
- 正在将非托管/非托管成员添加到托管类
- 为什么为结构的多个数据成员而不是单个成员添加填充
- 为什么没有将虚拟静态成员添加为C++的一个功能
- C++继承,将成员添加到派生类并重新定义构造函数
- 如何将类成员添加到向量中并正确使用它
- 如何将托管值类型成员添加到非托管类
- 为一个c++ vector成员添加一个标志
- 在不破坏旧代码的情况下,将成员添加到现有结构中
- 成员变量不会保存从函数成员添加到它的值