#include "stdafx.h"
// ConsoleApplication1.cpp : 定義控制臺應用程式的入口點。
//
#include < iostream>
#include <tchar.h>
#define M_PI 3. 14159265358979323846
using namespace std;
class CFigure
{
public:
virtual char* FigureType() = 0;
virtual double Circumference() = 0;
virtual double Area() = 0;
virtual ~ CFigure(){ }
};
class CTriangle : public CFigure
{
public:
CTriangle()
{
a = b = c = 0;
}
CTriangle(double a, double b, double c) : a(a), b(b), c(c) { }
char* FigureType()
{
return "Triangle";
}
double Circumference()
{
return a + b + c;
}
double Area()
{
double S = Circumference() / 2;
return sqrt(S * (S - a) * (S - b) * (S - c));
}
private:
double a, b, c;
};
class CSquare : public CFigure
{
public:
CSquare()
{
a = 0.0;
b = 0.0;
}
CSquare(double a, double b) : a(a), b(b)
{
}
char* FigureType()
{
return "Square";
}
double Circumference()
{
return 2 * a + 2 * b;
}
double Area()
{
return a * b;
}
private:
double a, b;
};
class CCircle : public CFigure
{
public:
CCircle()
{
r = 0;
}
CCircle( double r) : r( r)
{
}
char* FigureType()
{
return "Circle";
}
double Circumference()
{
return 2 * r * M_PI;
}
double Area()
{
return r * r * M_PI;
}
private:
double r;
};
int _tmain( int argc, _TCHAR* argv[])
{
CFigure* figures[3];
figures[0] = new CTriangle(2. 1, 3. 2, 4. 3);
figures[1] = new CSquare(5. 4, 6. 5);
figures[2] = new CCircle(8. 8);
for (int i = 0; i < 3; i++)
{
cout << "Figure type:\ t" << figures[i]->FigureType()
<< "\nCircumference:\ t" << figures[i]->Circumference()
<< "\nArea:\ t\ t" << figures[i]->Area()
<< endl << endl; }
return 0;
}
各位老師,報錯
錯誤:
嚴重性 代碼 說明 專案 檔案 行 禁止顯示狀態
錯誤 C2664 “CTriangle::CTriangle(CTriangle &&)”: 無法將引數 1 從“double”轉換為“const CTriangle &” ConsoleApplication1 d:\itteam_2017.07.14\vc\mfc\2\consoleapplication1\consoleapplication1\consoleapplication1.cpp 100
嚴重性 代碼 說明 專案 檔案 行 禁止顯示狀態
錯誤 C2664 “CSquare::CSquare(CSquare &&)”: 無法將引數 1 從“double”轉換為“const CSquare &” ConsoleApplication1 d:\itteam_2017.07.14\vc\mfc\2\consoleapplication1\consoleapplication1\consoleapplication1.cpp 101
嚴重性 代碼 說明 專案 檔案 行 禁止顯示狀態
警告 C4129 “ ”: 不可識別的字符轉義序列 ConsoleApplication1 d:\itteam_2017.07.14\vc\mfc\2\consoleapplication1\consoleapplication1\consoleapplication1.cpp 108
謝謝各位老師
uj5u.com熱心網友回復:
figures[0] = new CTriangle(2.1f, 3.2f, 4.3f);figures[1] = new CSquare(5.4f, 6.5f);
figures[2] = new CCircle(8.8f);
這樣再試試看
uj5u.com熱心網友回復:
如果這樣解決不了, 說明前面還有其它錯誤. 請從第一行錯誤的地方貼全錯誤資訊uj5u.com熱心網友回復:
謝謝啦。問題已經解決啦uj5u.com熱心網友回復:
我把你的代碼拷貝到vs2013,你猜怎么著??其實你所有的小數,在小數點右邊都多了一個“空格”。。。。去掉這些空格,就是正確的。。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/73843.html
標籤:基礎類
