这个问题源于我需要将std :: string"转换"为char*形式.
我希望尽可能多地保留代码并包含大量"="初始化/赋值运算符.
标准c运算符存在于基本数据类型(int,char,float,指向等等).
是否有可能在c中重载赋值运算符?我想每个数据类型,因为它是自己的操作员,所以搞乱一个不会弄乱别人.
无论如何,这只是引起我兴趣的东西,因为我找不到很多关于如何实现C运算符的参考.
干杯
好吧,一些例子是有序的
std::string a_string;
a_string = "bla"
Run Code Online (Sandbox Code Playgroud)
或使用标准C.
char a_char_array[10];
strcpy(a_char_array,"bla");
Run Code Online (Sandbox Code Playgroud)
要么
char *a_char_pointer = "bla";
Run Code Online (Sandbox Code Playgroud)
我正在考虑的是将这3个用例替换为单个用例,我可以(通过#define)在使用char*或std :: string之间切换.
我想每个真正关心性能与编码速度的人都已经考虑过使用std :: string而不是char*的含义.使用stl的所有优点通常都是通过较低的性能(你不能总是得到你想要的东西?)而经常被淘汰(这甚至是一个字!?).
正如我所说,我有一个大型项目,我想亲眼看看使用一种方法或另一种方法的变化.
我的帖子标题是故意误导,因为我不希望这成为一个char*vs字符串战斗,但我想如果没有更多的细节,我无法真正解释我想要的东西.
干杯
Val*_*itz 11
如果在代码中看到std :: string,并且编译器没有抱怨,那么你有一个C++,而不是C.