首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个入门基础有关问题,多谢指导

2012-03-14 
一个入门基础问题,谢谢指导structtest{test(int){}test(){}voidfun(){}}intmain(){testa(1)a.fun()test

一个入门基础问题,谢谢指导
struct   test
{
    test(int){}
    test(){}
    void   fun(){}
};
int   main()
{
    test   a(1);
    a.fun();
    test   b();//符号()不是直接调用构造函数赋值么?   语句1
    b.fun();//为什么出错呢?     语句2
    return   0;
}
上述程序编译时语句2报错,但如果将语句1改成test   b   或者改成   test   b(1)就行了。不解。。。
test   b()后面的()不是调用构造函数赋值吗?
test   b不也是要调用构造函数?
有什么区别吗?谢谢

[解决办法]
test b();调的是哪个构造函数?
[解决办法]
test b();//符号()不是直接调用构造函数赋值么? 语句1
你是想调用默认构造函数么?直接去掉()就可以了
[解决办法]
不懂为什么加上()就不对了呢?能否解释下呢?谢谢了啊
----------------------------------------------------
晕啊,说了那个是函数声明不是变量定义。
[解决办法]
你定义了test(int),看C++书就知道,只要用户自己定义了构造函数,定义对象时就会调用自定义的构造函数,所以你没带参数肯定报错的``
[解决办法]
test b();
b.fun();

---

改成

test b;
b.fun();

test b(); // 编译器因为这个是函数声明

热点排行