2
林賦值運算符和C字符串使得這應該是能串類指派C字符串相同的方式,我能夠一類:問題在C++
string a = "My string";
我的問題它的接縫就像它不是用於此目的的operator=(char operand)
。所以我的問題是這個:用什麼來代替?
我有什麼:
class exstring
{
...
public:
exstring& operator=(char*);
...
};
...
int main()
{
exstring test = "test";
}
其中給出:
main.cpp:9:22: error: conversion from ‘const char [19]’ to non-scalar type ‘std::exstring’ requested
任何想法?
'operator ='仍然是錯誤的,因爲它採用'char *'而不是'const char *'。 – pmr
聽起來像構造函數(在示例中未顯示)需要接受'const char *' – Benj
還有另一個區別。如果複製構造函數是私有的,但有一個可訪問的構造函數採用'const char *',則第一個定義將失敗。從技術上講,第一個相當於調用兩個構造函數(優化器可能會選擇忽略一個) - 第二個是直接初始化,並且只有一個構造函數調用 –