CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

弱弱地问个问题,谢谢指教

楼主kiluyar(猪猪)2005-08-02 19:36:05 在 C/C++ / C++ 语言 提问

class   A  
  {  
  public:  
  A(int   i){}  
  };  
   
  int   main(int   argc,   char   *argv[])  
  {  
          A   a();     //可以  
          A   a;         //非法!?  
  }  
   
  这里的A   a()和A   a有什么区别吗?谢谢! 问题点数:10、回复次数:7Top

1 楼foochow(无聊,灌水......)回复于 2005-08-02 19:39:21 得分 5

A   a();     //声明一个函数返回类型是A  
  Top

2 楼jorsef1984()回复于 2005-08-02 19:41:50 得分 0

A   a   需要构造参数Top

3 楼zengleiming(雷语)回复于 2005-08-02 19:41:55 得分 0

你自定义了类的构造函数,系统就会直接调用你自定义的A(int   i);  
  而不会再去调用系统为你缺省的,  
  你可在debug下单步追踪   看系统到底是如何调用的Top

4 楼xjp6688(大平/要做必须最好)回复于 2005-08-03 08:32:17 得分 0

class   A  
  {  
  public:  
                    A(){}  
  A(int   i){}  
  };  
   
  int   main(int   argc,   char   *argv[])  
  {  
          A   a();     //可以  
          A   a;         //非法!?//就不非法了  
  }  
  Top

5 楼yc0188(守护瓶(萍))回复于 2005-08-03 08:54:01 得分 5

class   A  
  {  
  public:  
                    A(){}  
  A(int   i){}  
  };  
   
  int   main(int   argc,   char   *argv[])  
  {  
          A   a();     //定义了   一个返回值为   A   的函数  
          A   a;         //一个A的对象.  
  }  
   
  函数名和变量名冲突,   所有除错.  
  单独定义就可以了.Top

6 楼BillSmith(睡教觉主)回复于 2005-08-03 09:46:33 得分 0

名称冲突,且第二个没有构造函数。  
  第一个是函数,第二个是对象。Top

7 楼jlkzzh(一阵风)回复于 2005-08-03 10:29:15 得分 0

名称冲突是对的Top

相关问题

  • 问个问题
  • 问个问题?
  • 问个问题
  • 问个问题?
  • 问个问题:
  • 问个问题
  • 问个问题!!
  • 问个问题
  • 问个问题!:)
  • 问个问题??????

关键词

  • 函数
  • 系统
  • 调用
  • 冲突
  • argc
  • argv
  • main
  • char

得分解答快速导航

  • 帖主:kiluyar
  • foochow
  • yc0188

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo