我正在创建一个应该能够以字符串类我能够分配c字符串的方式分配c字符串的类:
string a = "My string";
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它的接缝不是operator=( char operand )用于此目的的接缝.所以我的问题是:用什么代替?
是)我有的:
class exstring
{
...
public:
exstring& operator=( char* );
...
};
...
int main()
{
exstring test = "test";
}
Run Code Online (Sandbox Code Playgroud)
这使:
main.cpp:9:22: error: conversion from ‘const char [19]’ to non-scalar type ‘std::exstring’ requested
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Edw*_*nge 11
你不是在打电话给你operator =.您需要了解分配和初始化之间的区别.你正在做的是初始化,你需要一个构造函数来获取你提供的参数.换一种说法:
extring test = "test";
Run Code Online (Sandbox Code Playgroud)
完全相同:
extring test("test");
Run Code Online (Sandbox Code Playgroud)
除了在后一种情况下,构造函数可以是显式的,但不是前者.
| 归档时间: |
|
| 查看次数: |
446 次 |
| 最近记录: |