animal.h
#pragma once
#define _crt_secure_no_warnings
//抽象層
#include
#include
using namespace std;
class animal
;class dog :public animal
;class cat :public animal
;//架構函式,也屬於抽象層
void setanimalvoice(animal *a);
computer.h
#pragma once
#define _crt_secure_no_warnings
#include
using namespace std;
class cpu
;class card
;class memory
;//三個等級直接使用指標,不使用繼承
class computer//沒有繼承的則不需要寫虛析構函式,因為沒有繼承就沒有多型,沒有多型就不需要區分呼叫父類析構還是子類析構
;class intelcpu :public cpu
;class intelcard :public card
;class intelmemory :public memory
;class nvidiacard :public card
;class kingstonmemory :public memory
string animal::getkind()
string animal::getcolor()
animal::~animal()//這為虛析構函式的定義,~animal一定要帶上~才表示為虛析構函式名,這個虛析構函式的名稱為~animal這個整體
dog::dog(int age, string kind, string color) :animal(kind, color)//函式初始化列表不需要在另乙個建構函式前加作用域,只要在實現的函式名前加作用域就可以了
void dog::voice()//virtual dog::voice在類外部實現方法的這種寫法是錯誤的,不需要加virtual,加了反而報錯
cat::cat(int weight, string kind, string color) :animal(kind, color)
void cat::voice()
void setanimalvoice(animal *a)
card::~card()
memory::~memory()
computer::computer(cpu *cpu, card *card, memory *memory)
void computer::print()
void intelcpu::caculate()
void intelcard::display()
void intelmemory::storage()
void nvidiacard::display()
void kingstonmemory::storage()
c++抽象類練習.cpp
#include "animal.h"
#include "computer.h"
//這是抽象類
class a
};class c :public a
~c()
};//業務邏輯層
int main()
抽象類練習(c primer plus)
今晚看 c primer plus 做的練習題,呵呵,做的不怎麼好,希望高手如果有時間指點一二,謝謝誒!c primer plus p475練習題3 修改 basedma lacksdma hasdma類,讓他們都從乙個基類派生出來,實現和程式單13.10一樣的基本功能,注意使用基類陣列指標,在類中...
abstract抽象類練習
1.抽象方法 由abstract修飾的方法 2.特點 沒有方法體 3.抽象類 由abstract修飾的類 模組 4.特點 不能建立物件 5.抽象類中可以沒有抽象方法 6.抽象類由子類建立物件 7.子類可以建立物件,實現所有的抽象方法,沒有實現全部的抽象方法,當前類宣告為抽象類 練習 定義乙個類表示形...
抽象類總結及練習
該篇文章只是說明抽象類的乙個使用場景,由於小弟水平一般,如果有說的不對地方希望各位大牛們指出,也歡迎各位親們補充。什麼是抽象類 用關鍵字abstract定義的類即為抽象類,且只能作為基類。抽象類注意的地方 1 用abstract定義的類不一定包含抽象方法,也可以包含非抽象方法。2 abstract定...