C++参数初始化表的问题

浏览:30日期:2023-04-14

问题描述

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类型吧

相关文章: