Как создать объект в Си++ = c++ создание объекта , создание нового объекта c++ = агрегация классов c++
Primary tabs
Я приведу здесь только часть кода, иллюстрирующего работу с классами в Си++.
В частности мы здесь создаём новый объект =
Intel2000 * newcpu =new Intel2000("x86",3,123654); // СОЗДАНИЕ ОБЪЕКТА В(на)) СИ++ ))
(в контексте - смотрите код ниже)
а также всё более "навороченное" взаимодействие классов.
Смотрите полные рассуждения о решении данной задачи
/*далее опять пример паблик наследования ЭТО КЛАСС УЖЕ КОНКРЕТНЙ МОДЕЛИ ПРОЦЕССОРА*/ class Intel2000 : public Intel // а вот уже некий конкретный проц от интел { public: Intel2000(char*,int,int); // конструктор для класса данной можели опишем снаружи private: int id; // пусть серийный номер будет не публичен // иные объекты описывающие компоненты компьютера // не смогут узнать его)) }; // ну пора бы уже написать АГРЕГИРУЮЩИЙ КЛАСС - компьютер /*здесь мы не будем демонстрировать наследование - просто напишем один класс, который продемонстрирует.*/ class PC { public: Mboard mboard;// судя заряжаем класс описывающий материнскую плату Display display;// судя заряжаем класс описывающий материнскую плату CPU cpu;// слот для устройства ввода // - указываем используемый конструктор PC (Mboard mboard):cpu("x86",2) // "x86" и 2 - параметры по умолчанию /* для начала сборки компьютера в его конструктор достаточно просто передать объект "материская плата" причём любой модели ВНИМАНИЕ!= после параметров конструктора идёт список инициаллизации- он необходим для всех членов-классов у которых нет конструктора "без аргументов" (= назв.- "конструтор по-умолчанию") - такой (= "пустой" -не принимающий аргументов) конструктор надо явно прописыть для всех классов, определяющих собственнный конструтор с параметрами. Если же конструтор по умлочанию отсутствует, то следует указать принимаемые аргументы в списке инициаллизации -ч то и сделано выше для cpu = :cpu("x86",2) */ { PC::mboard=mboard; // закрепляем её)) Intel2000 * newcpu =new Intel2000("x86",3,123654); // СОЗДАНИЕ ОБЪЕКТА В(на)) СИ++ )) // далее переопределим те данные, //что были в списке инициализации и снабдим наш класс конкретным процессором PC::cpu = *newcpu;// "прикручиваем" процессор - а вот и переопределение // выше происходит замена одного указателя на другой - так как фактически // объект это указатель из несокльких байт // cpu = newcpu; } PC():cpu("x86",2) // всё-таки определим конструктор по-умолчанию { } void AddDisplay(Display display) { if (display.neededmem<=PC::mboard.msize) { PC::display=display; showmess("OK","display was added to your PC =))"); } else showmess("PC_ERROR","you haven't enough to add this display"); } };
- Log in to post comments
- 6414 reads