问题描述
1.下面代码有问题吗?
#include <iostream>#include <string.h>using namespace std;class A{public: A(char * ps):name(ps), len(strlen(name.c_str())) {} void dis() {cout << len << endl; }private: int len; string name;};int main(){ A a('china'); a.dis(); return 0;}
问题在哪?
问题解答
回答1:把数据成员string name;写在int len;的前面。因为数据成员的初始化,是声明的顺序。如果name都没有初始化,你怎么能用求name的len。
回答2:char* 类型 不能传给 string类型吧