每次使用C++程序時,我都記得所有可能被髮明用來吃米飯的器具的模因,「兩根棍子是如何贏得的」。 所以讓我解釋一下這個問題。我想要創建一個類字符串,這些字符串的行爲完全是視覺基本的字符串。C++的字符串
class kstring
{
char *value;
public:
kstring(char *val)
{
value=val;
}
kstring operator+(kstring *val)
{
//some code here that works
}
kstring &operator=(kstring s2)
{
value=s2.value;
return *this;
}
};
所以這是所有... 創作者功能允許類似VB的decleration:
kstring s="Hello World";
其他的事情是有點怪; 讓我們嘗試用一個printf():
printf("%s\n",s); //I prefear printf as cout because more redeable
它的工作原理只有在私人「的char *值」得到聲明爲首位。當然s是一個指針,沒有人知道在什麼時候。所以編譯器(代碼塊),幸運的是將它讀爲char數組。但是我不知道這是否會在每個編譯器和環境中完成,如果在實踐中是正確的,如果有更好的方法來定義它,比如vb指令「Default」。 二時會被分配=
kstring s,s2;
s="try ";
s2="again";
s=s+s2;
printf("%s\n",s);
在調試的功能裏面,它結合正是「再試一次」,但printf的只顯示地址,所以我的任務功能不起作用;有人建議做一個簡單的課程來處理字符串?
你爲什麼不使用[std :: string](http://en.cppreference。com/w/cpp/string/basic_string)從標準庫? –
對於賦值,您必須以'const char *'作爲參數來實現[賦值運算符](https://en.wikipedia.org/wiki/Assignment_operator_(C%2B%2B))。但是'std :: string'是「標準字符串」,對大多數情況來說已經夠用了。在printf中使用's.c_str()'。一旦你採納了一個新的想法,它很容易使用它。 – Dialecticus
可能有幫助:[printf和自定義類](http://stackoverflow.com/q/12069623/2372759) – MagunRa