M
Monarh
Здравствуйте.
Подскажите пожалуйста как, в конструкторе копирования, а также в операторе присваивания, вызвать метод инициализирующего объекта ?
Хотя я думаю сие, как для конструктора копирования так и для оператора присваивания, будет выглядеть одинаково, если ошибаюся поправьте.
Рассмотрим на примере конструктора копирования.
Что делается в программе:
Компилятор ругается:
Если вызывать функцию( Information_About_Array ) данного объекта, а не инициализирующего, то всё компилится и всё работает,
но в конструкторе копирования необходимо скопировать параметры инициализирующего объекта, а при вызове
метода инициализирующего объекта компилятор сильно ругается, и я не могу понять чего он от меня хочет.
Заранее Всем огромное СПАСИБО.
Подскажите пожалуйста как, в конструкторе копирования, а также в операторе присваивания, вызвать метод инициализирующего объекта ?
Хотя я думаю сие, как для конструктора копирования так и для оператора присваивания, будет выглядеть одинаково, если ошибаюся поправьте.
Рассмотрим на примере конструктора копирования.
Что делается в программе:
Код:
// Имеется класс
class Cls_Unit_of_Memory
{
...
public:
void Information_About_Array(string&);
Cls_Unit_of_Memory( const Cls_Unit_of_Memory& );
...
};
// Что делается в конструкторе копирования
Cls_Unit_of_Memory::Cls_Unit_of_Memory( const Cls_Unit_of_Memory& ClsObj_Init_Unit_of_Memory )
{
...
string Str_Info;
ClsObj_Init_Unit_of_Memory.Information_About_Array( Str_Info );
...
}
Компилятор ругается:
Код:
CLEAN SUCCESSFUL (total time: 192ms)
mkdir -p build/Debug/Cygwin-Windows/Source
rm -f build/Debug/Cygwin-Windows/Source/Unit_of_Memory.o.d
g++ -c -g -MMD -MP -MF build/Debug/Cygwin-Windows/Source/Unit_of_Memory.o.d -o build/Debug/Cygwin-Windows/Source/Unit_of_Memory.o Source/Unit_of_Memory.cpp
Source/Unit_of_Memory.cpp: In copy constructor `Cls_Unit_of_Memory::Cls_Unit_of_Memory(const Cls_Unit_of_Memory&)':
Source/Unit_of_Memory.cpp:44: error: passing `const Cls_Unit_of_Memory' as `this' argument of `void Cls_Unit_of_Memory::Information_About_Array(std::string&)' discards qualifiers
make: *** [build/Debug/Cygwin-Windows/Source/Unit_of_Memory.o] Error 1
BUILD FAILED (exit value 2, total time: 2s)
Если вызывать функцию( Information_About_Array ) данного объекта, а не инициализирующего, то всё компилится и всё работает,
но в конструкторе копирования необходимо скопировать параметры инициализирующего объекта, а при вызове
метода инициализирующего объекта компилятор сильно ругается, и я не могу понять чего он от меня хочет.
Заранее Всем огромное СПАСИБО.