首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C对象和() -它是做什么的?

C对象和() -它是做什么的?
EN

Stack Overflow用户
提问于 2013-10-11 10:47:56
回答 1查看 70关注 0票数 3

这段代码是做什么的?更准确地说,测试tob();做什么?

代码语言:javascript
复制
class test {
 private:
  int a;
  int b;
 public:
  test (int);
  test();
};
test::test() {
 cout<<"default";
}
test::test (int x=0) {
 cout<<"default x=0";
}
int main() {
 test tob();
}

我不知道测试tob();做什么,但是它没有给出任何编译错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-11 10:48:35

代码语言:javascript
复制
test tob();

这个声明是一个返回类型为test的函数。它不创建对象,,也称为最烦人的解析

要创建test对象,请执行以下操作:

代码语言:javascript
复制
test tob;

此外,使用默认参数定义函数(包括构造器)的方式是不正确的。

代码语言:javascript
复制
test::test (int x=0) {  // incorrect. You should put it in function when it's first declared
 cout<<"default x=0";
}

下面的代码应该有效:

代码语言:javascript
复制
class test {
  int a;
  int b;

 public:
  explicit test (int = 0);    // default value goes here
};

test::test (int x) {          
 cout<<"default x=0";
}

int main() {
 test tob;    // define tob object
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19316298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档