C++ 类在哪里定义

如果是在头文件里定义的话,不是说头文件一般只放声明么,而且别的好多cpp包含了.h ,这样不就会造成重定义
所以是不是说.h中其实是类的声明?
类的定义是在类的cpp中?

头文件里放的声明是成员函数的声明。类没有声明一说的啊!

给你举个例子吧!

头文件a.h里写这些内容:
class a
{
int x=0;
int y=0;
public:
void set();
void display();
};
源文件a.cpp里写这些内容:
#include "a.h"
void a::set()
{.....
}

void a::display()
{.....
}
看见没?源文件里放的都是成员函数的定义!类的定义在头文件里!
你写class a的时候就已经定义类了!而对于成员函数,在头文件里只做声明。就连成员变量也是在头文件里就定义了。

写程序的时候就应该就用这种结构去做!

另外,很多源文件都有include 头文件,不会引起重定义的!因为几个源文件在共享它!对于一个cpp来说,同时包含多个头文件是可以的,但如果你在一个cpp里把一个头文件包含了多次,就会重定义!
比如写了2次#include "a.h",才会出现重定义!你自己理解一下吧!哪怕他包含1000个头文件,只要没有重复,就不会发生重定义
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-31
1、类一般定在头文件当中。选择”新建->C/C++ header file“,编辑好类代码之后保存,就是“.h”格式的头文件。

2、类的定义格式一般地分为说明部分和实现部分。说明部分是用来说明该类中的成员,包含数据成员的说明和成员函数的说明。成员函数是用来对数据成员进行操作的,又称为“方法”。实现部分是用来对成员函数的定义。概括说来,说明部分将告诉使用者“干什么”,而实现部分是告诉使用者“怎么干”。

类的一般定义格式如下:

class <类名>
{
public:
<成员函数或数据成员的说明>
private:
<数据成员或成员函数的说明>
};
<各个成员函数的实现>
第2个回答  2015-09-17
头文件里放的声明是成员函数的声明。类没有声明一说的啊!

给你举个例子吧!

头文件a.h里写这些内容:
class a
{
int x=0;
int y=0;
public:
void set();
void display();
};
源文件a.cpp里写这些内容:
#include "a.h"
void a::set()
{.....
}

void a::display()
{.....
}
看见没?源文件里放的都是成员函数的定义!类的定义在头文件里!
你写class a的时候就已经定义类了!而对于成员函数,在头文件里只做声明。就连成员变量也是在头文件里就定义了。

写程序的时候就应该就用这种结构去做!

另外,很多源文件都有include 头文件,不会引起重定义的!因为几个源文件在共享它!对于一个cpp来说,同时包含多个头文件是可以的,但如果你在一个cpp里把一个头文件包含了多次,就会重定义!
比如写了2次#include "a.h",才会出现重定义!你自己理解一下吧!哪怕他包含1000个头文件,只要没有重复,就不会发生重定义
第3个回答  2010-03-15
#ifndef SAMPLE_H
#define SAMPLE_H

class Sample {

public:
Sample();
~Sample();

};

#endif // SAMPLE_H

预编译应该是这个样子的
其实实现也可以放在.h里,甚至声明的时候就可以实现,不过这样会默认为内联实现。
定义在.cpp中的好处是,你只看到接口,不管他是怎么实现。很多时候都是这样,我们不关系函数怎么实现的,只需要知道它是干什么的就可以使用,结构更清晰
第4个回答  2010-03-15
类的实现通常不放在头文件中的,否则信息封装就要打折扣了,为了要实现代码的重用,类的设计和实现者必须提供类的对外接口,所以把类的声明放在一个单独的头文件中,实现放在*.cpp中,将类编译成库文件,并同头文件一起交给用户使用
相似回答