抽象基類建構函式可以定義在類外麼?
顯然可以
#pragma once
#include
using std::string;
class quote
virtual
double netprice(size_t n) const
virtual ~quote() = default;
private:
string bookno;
protected:
double price=0.0;
};quote::quote(const
string& s, double p) :bookno(s), price(p) {}
class bulkquote :public quote
double netprice(size_t) const
override;
private:
size_t min_qty=0;
double discount = 0.0;
};double bulkquote::netprice(size_t cnt) const
但要注意:類外應該加上網域名稱限定符,即該建構函式屬於哪乙個類
quote::quote(const
string& s, double p) :bookno(s), price(p) {}
主函式
#include
#include"quote.h"
using
std::cout; using
std::endl;
int main()
執行結果
should pay: 112.5
類的建構函式初探
每個類都定義了它的物件被初始化的方式,類通過乙個或幾個特殊的成員函式來控制其物件的初始化過程,這些函式叫做建構函式。只要類的物件被建立,就會執行建構函式。建構函式的名字與類名相同,沒有返回值,可以過載,不能被宣告為const的。如果類中沒有建構函式,編譯器會提供乙個預設的建構函式,預設的建構函式會對...
虛函式與抽象基類
當某個虛函式通過指標或者引用呼叫時,編譯器產生的 直到執行時才能確定應該呼叫哪個版本的函式,被呼叫的函式是與繫結到指標或引用上的物件的動態型別相匹配的那個。必須注意的是,動態繫結只有當我們通過指標或引用呼叫虛函式時才會發生。如果通過普通的型別 非引用非指標 的表示式呼叫虛函式時,編譯器就會將呼叫的版...
C 虛基類建構函式
c 虛基類建構函式 下面文章詳細介紹c 虛基,所謂c 虛基類 是由最派生類的建構函式通過呼叫虛基類的建構函式進行初始化的,但前提是要深入理解到底什麼是c 虛基類,及他是怎麼執行的。前面講過,為了初始化基類的子物件,派生類的建構函式要呼叫基類的建構函式。對於虛基類來講,由於派生類的物件中只有乙個虛基類...