| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9383 人关注过本帖
标题:C++ 编译错误undefined reference to ' ' 求破....
取消只看楼主 加入收藏
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
C++ 编译错误undefined reference to ' ' 求破....
刚学C++,对类不是很熟悉
有道题大概是说什么求矩形的周长和面积,用类去做
我写了三个文件,一个.h,两个.cpp
但是编译时老是说undefined reference to ' ' 看了很久依然没有办法....求各位大神指教!
这是头文件
程序代码:
//Rectangle.h

#ifndef RECTANGLE_H
#define RECTANGLE_H
class Rectangle
{
public:
    Rectangle(float = 1,float = 1);
    
    void perimeter(float ,float );
    void area(float ,float );
    float getLength();
    float getWidth();
    void setLengthWidth(float ,float );
    
private:
    float length;
    float width ;
};

#endif



这是第一个cpp
程序代码:
// Rectangle.cpp

#include <iostream>
#include <stdexcept>
#include "Rectangle.h"
using namespace std;

Rectangle::Rectangle(float a,float b)
{
    setLengthWidth(a,b);
}

void Rectangle::perimeter(float a,float b)
{
    cout << "The perimeter of the rectangle is " << 2(a+b) << endl;
}

void Rectangle::area(float a,float b)
{
    cout << "The area of the rectangle is " << a*b << endl;
}

float Rectangle::getLength()
{
    return length;
}

float Rectangle::getWidth()
{
    return width;
}

void Rectangle::setLengthWidth(float a,float b)
{
    if((a>=0.0&&a<=20.0)&&(b>=0.0&&b<=20.0))
    {
        length = a;
        width = b;    
    }
    else 
    throw invalid_argument("The length or the width is out of range");
}



这是主函数的cpp
程序代码:
// RectangleClass.cpp

#include <iostream>
#include "Rectangle.h"
using namespace std;

int main()
{
    float a,b;
    cout << "Please enter the length and width for the rectangle : ";
    cin >> a >> b;
    Rectangle Calculate(a,b);
    Calculate.perimeter(Calculate.getLength(),Calculate.getWidth());
    Calculate.area(Calculate.getLength(),Calculate.getWidth());
        
    return 0;
}


在线等......
搜索更多相关主题的帖子: 办法 cpp undefined reference 
2013-04-03 17:46
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 2楼 peach5460
    Rectangle Calculate(a,b);
    Calculate.perimeter(Calculate.getLength(),Calculate.getWidth());
    Calculate.area(Calculate.getLength(),Calculate.getWidth());


这三行报错了......

--------------------配置: mingw5 - CUI Debug, 编译器类型: MinGW--------------------

检查文件依赖性...
正在编译 C:\Users\Alien\Desktop\HW4\9.11\RectangleClass.cpp...
正在连接...
[Error] RectangleClass.cpp:12: undefined reference to `Rectangle::Rectangle(float, float)'
[Error] RectangleClass.cpp:13: undefined reference to `Rectangle::getWidth()'
[Error] RectangleClass.cpp:13: undefined reference to `Rectangle::getLength()'
[Error] RectangleClass.cpp:13: undefined reference to `Rectangle::perimeter(float, float)'
[Error] RectangleClass.cpp:14: undefined reference to `Rectangle::getWidth()'
[Error] RectangleClass.cpp:14: undefined reference to `Rectangle::getLength()'
[Error] RectangleClass.cpp:14: undefined reference to `Rectangle::area(float, float)'
[Error] collect2: ld returned 1 exit status

构建中止 RectangleClass: 8 个错误, 0 个警告


就是这样,调试了很久都不行啊,求继续指教!
2013-04-03 21:31
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 3楼 邓士林
这个呃,改正了是2*(a+b)
但依然报错,同样的错
2013-04-03 21:32
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 7楼 fanpengpeng
那你改正之后可以运行吗
2013-04-04 00:17
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 6楼 shmilyflf
就是为了防止重定义才用的......
2013-04-04 00:18
Mayuri
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2012-12-17
收藏
得分:0 
回复 11楼 shmilyflf
即使我去掉了头文件卫士的那三行代码依然报错
2013-04-04 07:10
快速回复:C++ 编译错误undefined reference to ' ' 求破....
数据加载中...
 
   



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

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