| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 584 人关注过本帖
标题:为什么这样写编译不能通过?
只看楼主 加入收藏
pqsusu1
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2009-8-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
为什么这样写编译不能通过?
//文件A.cpp的内容
class A
{
    public:
        A(){}
        virtual ~A(){}
    protected:
    private:
};

//main.cpp的内容
class A
{
    public:
        A();
        virtual ~A();
    protected:
    private:
};

int main()
{
     A a;
    return 0;
}

[[it] 本帖最后由 pqsusu1 于 2009-8-3 00:56 编辑 [/it]]
搜索更多相关主题的帖子: 编译 
2009-08-03 00:47
傻朋
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2008-2-28
收藏
得分:0 
你只在类的内部声明了 构造函数跟析构函数
 但是你没有去实现。。
2009-08-03 08:13
傻朋
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2008-2-28
收藏
得分:3 
你只在类的内部声明了 构造函数跟析构函数
 但是你没有去实现。。
2009-08-03 08:14
pqsusu1
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2009-8-3
收藏
得分:0 
以下是引用傻朋在2009-8-3 08:13的发言:

你只在类的内部声明了 构造函数跟析构函数
 但是你没有去实现。。


朋友带{}就是实现了!
2009-08-03 08:27
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:5 
回复 楼主 pqsusu1
你有没有包含声明?如果包含了,A就被定义了两遍,当然编译过不了了。

你把你的错误和警告也发上来。以后问的时候如果有编译错误最好也发编译器给的错误和警告也发上来,这样有的问题就不用我们自己编译了。对着错误和警告直接分析源码会看的快一点~
2009-08-03 12:59
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:12 


[[it] 本帖最后由 wxjeacen 于 2009-8-3 16:50 编辑 [/it]]

test_c++.tar.gz (72.22 KB)

生命不熄,战斗不止.
2009-08-03 16:48
明次
Rank: 5Rank: 5
来 自:China
等 级:职业侠客
帖 子:166
专家分:303
注 册:2009-1-11
收藏
得分:0 
编译要是能通过就怪了...

、明次℡!           QQ:604622530
2009-08-03 21:35
pqsusu1
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2009-8-3
收藏
得分:0 
以下是引用wxjeacen在2009-8-3 16:48的发言:



你好,你这种是标准的做法,将定义放头文件,成员函数的实现放到源文件。这样肯定是可以运行,书上也是这样用。

我的问题是:像1楼那样,将定义跟实现放同一源文件,然后在调用文件处再定义一次(直接定义而不是通过包含头文件),各文件单独编译是通过的。但链接时才出问题,我想问这是为什么?
2009-08-04 10:22
快速回复:为什么这样写编译不能通过?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089818 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved