class AFX_EXT_CLASS CArSantRecord
{
public:
CArSantRecord();
virtual ~CArSantRecord();
// Идентификатор записи в базе
CString strDocID;
}
Указатель на класс
Что надо сделать, что бы этого не происходило.
Класс содержит только конструктор и деструктор, а также несколько переменных
Цитата:
Originally posted by AndreySar
Что надо сделать, что бы этого не происходило.
Что надо сделать, что бы этого не происходило.
Правильно писать код.
Цитата:
Originally posted by AndreySar
В качестве параметра функции передается указатель на класс. В этой функции происходит инициализация переменных класса. При возврате из функции переменные обнуляются.
Что надо сделать, что бы этого не происходило.
Класс содержит только конструктор и деструктор, а также несколько переменных
В качестве параметра функции передается указатель на класс. В этой функции происходит инициализация переменных класса. При возврате из функции переменные обнуляются.
Что надо сделать, что бы этого не происходило.
Класс содержит только конструктор и деструктор, а также несколько переменных
Покажи код, тогда и обсудить можно будет
Цитата:
Originally posted by madjahed
Покажи код, тогда и обсудить можно будет
Покажи код, тогда и обсудить можно будет
1.
Код:
2.
Код:
CArSantRecord rs;
if(database->GetFirstRecord())
{
while(database->GetNextRecord(&rs))
{
m_table.InsertItem(nItem, rs.strDocID);
}
}
if(database->GetFirstRecord())
{
while(database->GetNextRecord(&rs))
{
m_table.InsertItem(nItem, rs.strDocID);
}
}
3.
Код:
GetNextRecord(CArSantRecord *rs)
{
rs.strDocID = "1";
}
{
rs.strDocID = "1";
}
сделай виртуальным.
Код:
GetNextRecord(CArSantRecord *rs)
{
rs.strDocID = "1";
}
{
rs.strDocID = "1";
}
Этот код, вообще, не рабочий.
[QUOTE=hardcase]
у тебя как я понял конструктор статический.
сделай виртуальным.
[/QUOTE]
Ты сам то понял, что сказал?
Какой виртуальный конструкор? :D
Ты имел в виду фабрику объектов? Причем тут она? :D
Код:
class AFX_EXT_CLASS CArSantRecord
{
public:
CArSantRecord();
virtual ~CArSantRecord();
// Идентификатор записи в базе
CString strDocID;
}
{
public:
CArSantRecord();
virtual ~CArSantRecord();
// Идентификатор записи в базе
CString strDocID;
}
2.
Код:
CArSantRecord rs;
if(database->GetFirstRecord())
{
while(database->GetNextRecord(&rs))
{
m_table.InsertItem(nItem, rs.strDocID);
}
}
if(database->GetFirstRecord())
{
while(database->GetNextRecord(&rs))
{
m_table.InsertItem(nItem, rs.strDocID);
}
}
3.
Код:
GetNextRecord(CArSantRecord *rs)
{
rs.strDocID = "1";
}
{
rs.strDocID = "1";
}
Как такой код вообще компилируется? Компилятор должен сказать что-то вроде Can't convert CArSantRecord& to CArSantRecord*
сделай виртуальным.[/QUOTE]
Конструкторы не бывают ни статическими, ни виртуальными.
3.
Код:
GetNextRecord(CArSantRecord *rs)
{
rs.strDocID = "1";
}
{
rs.strDocID = "1";
}
вообще-то компилится не должно это, надо так написать rs->strDocID = "1";
Код:
class TSomeClass
{
public:
TSomeClass();
virtual ~TSomeClass(void);
void SetID(int value){some_data = value;}
private:
int some_data;
};
{
public:
TSomeClass();
virtual ~TSomeClass(void);
void SetID(int value){some_data = value;}
private:
int some_data;
};
а потом так
Код:
int main(int argc, char* argv[])
{
TSomeClass cls;
SomeFunction(cls);
return 0;
}
void SomeFunction(TSomeClass& inst)
{
inst.SetID(123);
}
{
TSomeClass cls;
SomeFunction(cls);
return 0;
}
void SomeFunction(TSomeClass& inst)
{
inst.SetID(123);
}