下面給大家介紹下C++軟件的學(xué)習(xí)小結(jié),希望可以幫到您哦!
(4)對(duì)于類(lèi)的成員函數(shù),若指定其為const類(lèi)型,則表明其是一個(gè)常函數(shù),不能修改類(lèi)的成員變量;
(5)對(duì)于類(lèi)的成員函數(shù),有時(shí)候必須指定其返回值為const類(lèi)型,以使得其返回值不為“左值”。
一個(gè)基類(lèi)及其繼承類(lèi)的實(shí)現(xiàn):
class Base
{
public:
Base(const char *s=NULL);
Base(const Base& rth);
Base & operator=(const Base & oth);
virtual ~Base();
private:
char *m_data;
};
Base::Base(const char* s)
{
if(s==NULL)
{
m_data=new char[1];
m_data[0]='\0';
}
else
{
int length=strlen(s);
m_data=new char[length+1];
strcpy(m_data,s);
}
}
Base::Base(const Base & oth)
{
int len=strlen(oth.m_data);
m_data=new char[len+1];
strcpy(m_data,oth.m_data);
}
Base & Base::operator=(const Base & oth)
{
if(this==&oth) return *this;
delete []m_data;
int len=strlen(oth.m_data);
m_data=new char[len+1];
strcpy(m_data,oth.m_data);
return *this;
}
Base::~Base()
{
delete[] m_data;
}
class Derived : public Base
{
public:
Derived(const char* s=NULL,int a=0);
Derived(const Derived& oth);
Derived& operator=(const Derived& oth);
private:
int m;
};
Derived::Derived(const char* s,int a):Base(s),m(a){ }
Derived::Derived(const Derived& oth):Base(oth),m(oth.m){ }
Derived& Derived::operator=(const Derived& oth)
{
if(this==&oth) return *this;
Base::operator=(oth);
m=oth.m;
return *this;
}
C++編譯器不支持模板頭文件和實(shí)現(xiàn)代碼分離的編譯
在分離式編譯的環(huán)境下,編譯器編譯某一個(gè).cpp文件時(shí)并不知道另一個(gè).cpp文件的存在,也不會(huì)去查找(當(dāng)遇到未決符號(hào)時(shí)它會(huì)寄希望于連接器)。這種模式在沒(méi)有模板的情況下運(yùn)行良好,但遇到模板時(shí)就不行,因?yàn)槟0鍍H在需要的時(shí)候才會(huì)具現(xiàn)化出來(lái),所以,當(dāng)編譯器只看到模板的聲明時(shí),它不能具現(xiàn)化該模板,只能創(chuàng)建一個(gè)具有外部連接的符號(hào)并期待連接器能夠?qū)⒎?hào)的地址決議出來(lái)。然而當(dāng)實(shí)現(xiàn)該模板的.cpp文件中沒(méi)有用到模板的具現(xiàn)體時(shí),編譯器懶得去具現(xiàn),所以,整個(gè)工程的.obj中就找不到一行模板具現(xiàn)體的二進(jìn)制代碼,于是連接器也傻了!
2021-07-09
2021-07-08
2021-07-08
2021-07-08
電腦c盤(pán)滿(mǎn)了怎么清理 c盤(pán)哪些文件可以刪除
2021-07-08
2021-07-07
幼兒園家長(zhǎng)反饋意見(jiàn)怎么寫(xiě)
2021-07-07
2021-07-07
2021-07-07
2021-07-07
2021-07-06
2021-07-06
工作態(tài)度怎么寫(xiě) 具有穩(wěn)定的工作心態(tài)
2021-07-06
該文觀點(diǎn)僅代表作者本人,查查吧平臺(tái)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請(qǐng)發(fā)送郵件至85868317@qq.com舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。