А>В какой момент создается объект filename класса string?
До вызова OpenLogFile.
А>И почему в файле вместо значения указателя ptrByteAlloc мусор?
char* ptrByteAlloc = (char*) malloc(1); — вот здесь выделяется память, но она не обязательно должна быть заполнена нулями, используйте calloc вместо.
_logFile << ptrByteAlloc << "\n";
А>>И почему в файле вместо значения указателя ptrByteAlloc мусор?
АШ>char* ptrByteAlloc = (char*) malloc(1); — вот здесь выделяется память, но она не обязательно должна быть заполнена нулями, используйте calloc вместо. АШ>_logFile << ptrByteAlloc << "\n";
Ой, не на то ответил. Чтобы вывести адрес указателя надо привести его к (void*).
Re[2]: Вызов статического метода класса
От:
Аноним
Дата:
15.10.04 12:34
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:
А>>В какой момент создается объект filename класса string?
АШ>До вызова OpenLogFile.
А>>И почему в файле вместо значения указателя ptrByteAlloc мусор?
АШ>char* ptrByteAlloc = (char*) malloc(1); — вот здесь выделяется память, но она не обязательно должна быть заполнена нулями, используйте calloc вместо. АШ>_logFile << ptrByteAlloc << "\n";
Спасибо.
Но, что значит "До вызова OpenLogFile"? До начала работы ф-ции main()?
А>Но, что значит "До вызова OpenLogFile"? До начала работы ф-ции main()?
нет
int main()
{
{вот здесь создается временный объект инициализированный "c:\\pt.txt"}
PlanetTranay::OpenLogFile();
{вот здесь временный объект прекращает свой жизненный пусть}
}
Re[4]: Вызов статического метода класса
От:
Аноним
Дата:
15.10.04 12:45
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:
А>>Но, что значит "До вызова OpenLogFile"? До начала работы ф-ции main()? АШ>нет
АШ>
АШ>int main()
АШ>{
АШ> {вот здесь создается временный объект инициализированный "c:\\pt.txt"}
АШ> PlanetTranay::OpenLogFile();
АШ> {вот здесь временный объект прекращает свой жизненный пусть}
АШ>}
АШ>
Здравствуйте, Анатолий Широков, Вы писали:
А>>Но, что значит "До вызова OpenLogFile"? До начала работы ф-ции main()? АШ>нет
АШ>
АШ>int main()
АШ>{
АШ> {вот здесь создается временный объект инициализированный "c:\\pt.txt"}
АШ> PlanetTranay::OpenLogFile();
АШ> {вот здесь временный объект прекращает свой жизненный пусть}
АШ>}
АШ>
Анатолий , у меня к сам вопрос — а разве — const string & fileName — не является локальной переменной
ф-ции (метода) PlanetTranay::OpenLogFile(); ??? А раз так , то и создаваться она должна в момент вызова данного ф-ции (метода)..
int main()
{
PlanetTranay::OpenLogFile(); // {вот здесь создается временный объект инициализированный "c:\\pt.txt"}
{вот здесь временный объект прекращает свой жизненный пусть}
}
SZ>Анатолий , у меня к сам вопрос — а разве — const string & fileName — не является локальной переменной SZ>ф-ции (метода) PlanetTranay::OpenLogFile(); ??? А раз так , то и создаваться она должна в момент вызова данного ф-ции (метода)..
SZ>int main() SZ>{ SZ> PlanetTranay::OpenLogFile(); // {вот здесь создается временный объект инициализированный "c:\\pt.txt"} SZ> {вот здесь временный объект прекращает свой жизненный пусть} SZ>}
Имеет ли значение по умолчанию аргумент функции или нет — это рояля не играет — временный объект создается и в том и в другом случае до вызова самой функции.