Кажется, что атрибут test aisbn
успешно хранит данные, вызывающие setCode()
, setDigit()
. Но проблема начинается с сбоя, в то время как я пытаюсь сохранить эти значения в list<test> simul
Не удается сохранить значения в списке
Атрибут list принимает значение после setDigit()
, но код. Как я могу поместить оба кода и цифры в атрибут списка? Я не вижу, где проблема. Код:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <fstream>
#include <list>
using namespace std;
class test
{
private:
string code;
int digit;
public:
//constructor
test(): code(""), digit(0) { }
//copy constructor
test(const test &other):
digit(other.digit)
{
for(unsigned int i=0; i < code.length(); i++)
code[i] = other.code[i];
}
//set up the private values
void setCode(const string &temp, const int num);
void setCode(const string &temp);
void setDigit(const int &num);
//return the value of the pointer character
const string &getCode() const;
const unsigned int getDigit() const;
};
const string& test::getCode() const
{
return code;
}
const unsigned int test::getDigit() const
{
return digit;
}
void test::setCode(const string &temp, const int num)
{
if((int)code.size() <= num)
{
code.resize(num+1);
}
code[num] = temp[num];
}
void test::setCode(const string &temp)
{
code = temp;
}
void test::setDigit(const int &num)
{
digit = num;
}
int main()
{
const string contents = "dfskr-123";
test aisbn;
list<test> simul;
list<test>::iterator testitr;
testitr = simul.begin();
int count = 0;
cout << contents << '\n';
for(int i=0; i < (int)contents.length(); i++)
{
aisbn.setCode(contents);
aisbn.setDigit(count+1);
simul.push_back(aisbn);
count++;
}
cout << contents << '\n';
/*for(; testitr !=simul.end(); simul++)
{
cout << testitr->getCode() << "\n";
}*/
}
забыть цикл for. Интересно, что simul.push_back (aisbn) принимает значение цифры только из setDigit(). Не могли бы вы посмотрите в код (INT I = 0; я <(целое) contents.length(); я ++) \t \t { \t \t \t aisbn.setCode (содержание); \t \t \t aisbn.setDigit (count + 1); \t \t \t simul.push_back (aisbn); \t \t \t кол-во ++; \t \t} – user2282596
@ user2282596 Измененный ответ –
Many thx. проблема решена – user2282596