iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

C語言與C++語言自學系列 第 25

C語言與C++語言自學第二十五天

  • 分享至 

  • xImage
  •  

C++語言物件導向

我們今天要來寫一個TestCircle.cpp,來顯示出Circle的Radius半徑等於1時面積是多少,半徑等於25時面積是多少,半徑等於125時面積是多少,半徑等於100時面積是多少,下程式碼

#include <iostream>
using namespace std;

class Circle
{
public:
  // The radius of this circle
  double radius;

  // Construct a default circle object
  Circle()
  {
    radius = 1;
  }

  // Construct a circle object
  Circle(double newRadius)
  {
    radius = newRadius;
  }

  // Return the area of this circle
  double getArea()
  {
    return radius * radius * 3.14159;
  }

  // Return the perimeter of this circle 
  double getPermeter()
  {
    return 2 * radius * 3.14159;
  }

  // Set new radius for this circle 
  void setRadius(double newRadius)
  {
    radius = newRadius;
  }
}; // Must place a semicolon here

int main()
{
  Circle circle1(1.0);
  Circle circle2(25);
  Circle circle3(125);

  cout << "The area of the circle of radius "
    << circle1.radius << " is " << circle1.getArea() << endl;
  cout << "The area of the circle of radius "
    << circle2.radius << " is " << circle2.getArea() << endl;
  cout << "The area of the circle of radius "
    << circle3.radius << " is " << circle3.getArea() << endl;

  // Modify circle radius
  circle2.radius = 100;
  cout << "The area of the circle of radius "
    << circle2.radius << " is " << circle2.getArea() << endl;

  return 0;
}

上面的程式碼中,我們先宣告了Circle的class類別,類別中有public是公有的,其實還有private私有的只是我們這個程式碼中還沒提到而已,private是存取修飾子,在private後面宣告的變數或函示,只能為該類別的成員函示存取,接著我們繼續介紹程式碼,Circle(){radius=1;}給Circle一個建構子的意思,什麼是建構子,建構子就是只有在實體化一個class後(new完後)能被執行,是用來初始化一些class特性的的功能,第二個建構子就是Circle(double newRadius){radius = newRadius;}因為我們要先給半徑的值是多少,然後半徑又等於我們下面main函示輸入的值,下面的get和set最大的差別就是get是直接return的,set是還要宣告他是int還是double然後radius=newRadius輸入新的值,main函示中就是我們上面ㄉ宣告Circle在打一次,circle1就變數名字,接著配合後面的circle1.getArea()、circle2.getArea()、circle2.getArea()其中的.意思就是的意思,最後就能印出我們要的各種結果了


上一篇
C語言與C++語言自學第二十四天
下一篇
C語言與C++語言自學第二十六天
系列文
C語言與C++語言自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言