C++11新關鍵字default
C++11新增了很多新特性,使C++看上去更加的靈活和麵向物件,其中新關鍵字default值得我們關注一下。
我們知道有時候當我們僅建立了有參建構函式後,如果你想呼叫無參建構函式編譯是會報錯的。因為一旦你自己定義了建構函式,系統的預設建構函式是被遮蔽的,也就是說此時是沒有無參建構函式的,所以我們需要自己定義一個無參建構函式。但是現在在C++11中,如果我們僅定義了有參建構函式,可以通過default關鍵字讓預設建構函式恢復。具體實現如下:
class CString
{
char* _str = nullptr;
public:
CString() = default; //恢復預設建構函式
CString(const char* pstr) : _str(nullptr) //自定義的有參構造
{
UpdateString(pstr);
}
~CString()
{
if (_str)
free(_str);
}
void UpdateString(const char* pstr) throw()
{
if (pstr == nullptr)
return;
if (_str)
free(_str);
_str = (char*)malloc(strlen(pstr) + 1);
strcpy(_str,pstr);
}
char* GetStr() const throw()
{
return _str;
}
};
相關文章
- C++11 noexcept 關鍵字用法學習C++
- C++11 thread_local關鍵字C++thread
- C++11 關鍵字 const 到底怎麼用?C++
- ?Java8新特性之Lambda表示式,函式式介面,方法引用和default關鍵字Java函式
- 淺析c++11中的“=default“和“=delete“C++delete
- this關鍵字
- 關鍵字
- es6新特性--let,const關鍵字
- abstract關鍵字 super 關鍵字 類與繼承繼承
- out關鍵字和ref關鍵字的區別
- Swift 關鍵字Swift
- typedef關鍵字
- Synchronized關鍵字synchronized
- JavaScript this關鍵字JavaScript
- Swift —— 關鍵字Swift
- oracle關鍵字Oracle
- Auto關鍵字
- [JavaScript] this 關鍵字JavaScript
- 4關鍵字
- super關鍵字
- synchronized 關鍵字synchronized
- static關鍵字
- Google關鍵字工具Go
- Synchronize 關鍵字原理
- [java]transient關鍵字Java
- 使用 Synchronized 關鍵字synchronized
- c#關鍵字C#
- java中this關鍵字Java
- 多關鍵字排序排序
- JavaScript中this關鍵字JavaScript
- java transient關鍵字Java
- javascript的this關鍵字JavaScript
- volitile關鍵字
- java之this關鍵字Java
- 完全理解關鍵字this
- Voliate關鍵字
- synchronize關鍵字 原理
- 各類關鍵字