标题:类内初始化成员问题
只看楼主
xiaodu000
Rank: 2
来 自:黑龙江七台河
等 级:论坛游民
帖 子:52
专家分:42
注 册:2013-10-15
结帖率:83.33%
已结贴  问题点数:20 回复次数:6 
类内初始化成员问题
#include<iostream>
using namespace std;
class Student{
    private:
        string s[3];
    public:
        Student()
        {
            cout<<"use one"<<endl;
        }
        Student(string a,string b,string c)
        {
            s[0] = a;
            s[1] = b;
            s[2] = c;
            cout<<"use two"<<endl;
        }
        
};
int main()
{
    Student s1("123","1234","12345");
    Student s2();
    return 0;
}

帮忙看一下,为什么会跳过对象s2直接结束。
搜索更多相关主题的帖子: private include public return 
2014-06-03 17:43
xiaodu000
Rank: 2
来 自:黑龙江七台河
等 级:论坛游民
帖 子:52
专家分:42
注 册:2013-10-15
得分:0 
好吧,我只是想探究一下Student s2和Student s2()的不同。

写问题的同学不要手懒,有时候编译器说的东西胜过任何大牛!
2014-06-03 17:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:5 
Student s2()多了個圓括號。

編譯時就警告你
warning C4930: “Student s2(void)”: 未调用原型函数(是否是有意用变量定义的?)
沒看到?

[ 本帖最后由 TonyDeng 于 2014-6-4 02:32 编辑 ]

授人以渔,不授人以鱼。
2014-06-04 02:30
gobraves
Rank: 2
等 级:论坛游民
帖 子:46
专家分:16
注 册:2013-8-3
得分:5 
没跳过,跳过了怎么可能还输出use two
2014-06-04 14:44
gobraves
Rank: 2
等 级:论坛游民
帖 子:46
专家分:16
注 册:2013-8-3
得分:0 
一个是带参的构造函数,一个是无参的构造函数
2014-06-04 14:45
hubinyes
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:104
专家分:557
注 册:2014-2-4
得分:5 
2014-06-06 21:19
律吕调阳
Rank: 2
等 级:论坛游民
威 望:2
帖 子:16
专家分:93
注 册:2014-6-9
得分:5 
Student s2();
这样定义对象会产生误解,可能是一个函数原型:
返回类型为MyClass,不需要参数的函数的原型
去掉括号就行了
2014-06-09 14:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-432422-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.356556 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved