程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++ 類-關於C++ 類 編譯出錯問題

c++ 類-關於C++ 類 編譯出錯問題

編輯:編程綜合問答
關於C++ 類 編譯出錯問題

大家好,最近在努力學習C++,但是遇見了一些問題,很希望懂的人士幫我解答下,這對於你們很簡單吧,嘿嘿,謝謝了
代碼如下:

#include<iostream>
using namespace std;
class Box{
    public:
        double length;
        double heigth;
        double width;
        int d;
        Box();
    Box(double length1,double heigth1,double width1){
        length=length1;
        heigth=heigth1;
        width=width1;
    }
    double volume(){
        return length*heigth*width;
    }
};//要有分號哦! 
int main(){
    Box firstBox(2.0,4.0,6.0);
    firstBox.d=2;
    cout<<endl
        <<firstBox.length<<"\n"
        <<firstBox.heigth<<"\n"
        <<firstBox.width<<"\n"
        <<firstBox.d
        <<endl;
    cout<<firstBox.volume();

    Box smallBox;
    smallBox.length=10.0;
    smallBox.heigth=5.0;
    smallBox.width=4.0;
    cout<<endl;
    cout<<smallBox.length<<"\n"
        <<smallBox.heigth<<"\n"
        <<smallBox.width<<"\n"
        <<smallBox.volume()
        <<endl;
    return 0;
}

在Dev_C++5.6.1上編譯的,出現了如下:

C:\Users\ADMINI~1\AppData\Local\Temp\ccgxkOkf.o lei1.cpp:(.text+0x10f): undefined reference to `Box::Box()'
D:\Dev-Cpp\大二C\collect2.exe [Error] ld returned 1 exit status

我在百度上搜了很多,但很不理解,希望各位幫忙解答下。謝謝了

最佳回答:


因為你編寫的Box smallBox;需要使用到無參構造函數,但是你已經提供了一個帶參數的構造函數,因此編譯器將不會為你提供無參構造函數,即默認構造函數,你只需在類定義加上Box(){},即顯式定義一個無參構造函數就可以了。
另外你原來代碼中有個Box(),這個只是聲明,沒有定義,但是你Box smallBox;這個需要使用這個函數,但連接器找不到這個函數的入口,因此也會報錯的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved