c 抽象類練習

2021-08-21 01:48:35 字數 1751 閱讀 6010

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定...