C++中,定义对象指的是主函数内的定义吗,对象是否存在声明的说法?
首先我的理解是,拿一个普通的函数举例,主函数内称为声明,主函数外具体的函数实现过程称为定义,那么主函数内通过类来构造对象(实例)是否被称为声明,还是定义?...
首先我的理解是,拿一个普通的函数举例,主函数内称为声明,主函数外具体的函数实现过程称为定义,那么主函数内通过类来构造对象(实例)是否被称为声明,还是定义?
展开
1个回答
展开全部
1.存在对象声明这一说法
当使用的对象是在其它源文件中定义的,或虽然是在本源文件中定义,但使用是在定义之前时,就需要进行对象的声明。声明对象时,一般也先要对类进行声明。通用的做法是将类声明和对象声明以及其它所有声明都放在头文件中,源文件再去包含头文件就行了。
2.对象可以定义在函数的外面、函数的里面、结构体或类中。
下面是一个关于对象声明的例子(演示的是对象的使用在定义之前的声明)。
#include<iostream>
using namespace std;
//类cl的声明
class cl
{
public:
cl(int);
void print() const;
private:
int n;
};
int main()
{
//整型变量i的声明(用于做对比)
extern int i;
//对象o的声明
extern cl o;
//整型变量i的使用(用于做对比)
cout<<i<<",";
//对象o的使用
o.print();
return 0;
}
cl::cl(int i):n(i)
{}
void cl::print() const
{
cout<<n<<endl;
}
//整型变量i和对象o的定义(定义在函数外且上面main函数中对它们的使用在这之前)
int i=666;
cl o(100);
当使用的对象是在其它源文件中定义的,或虽然是在本源文件中定义,但使用是在定义之前时,就需要进行对象的声明。声明对象时,一般也先要对类进行声明。通用的做法是将类声明和对象声明以及其它所有声明都放在头文件中,源文件再去包含头文件就行了。
2.对象可以定义在函数的外面、函数的里面、结构体或类中。
下面是一个关于对象声明的例子(演示的是对象的使用在定义之前的声明)。
#include<iostream>
using namespace std;
//类cl的声明
class cl
{
public:
cl(int);
void print() const;
private:
int n;
};
int main()
{
//整型变量i的声明(用于做对比)
extern int i;
//对象o的声明
extern cl o;
//整型变量i的使用(用于做对比)
cout<<i<<",";
//对象o的使用
o.print();
return 0;
}
cl::cl(int i):n(i)
{}
void cl::print() const
{
cout<<n<<endl;
}
//整型变量i和对象o的定义(定义在函数外且上面main函数中对它们的使用在这之前)
int i=666;
cl o(100);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询