explicit.cpp
来自「本课程主要介绍面向对象程序设计的方法和c++语言的基本概念。以c++语言中的面向」· C++ 代码 · 共 47 行
CPP
47 行
//explicit.cpp
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////
class Distance //English Distance class
{
private:
const float MTF; //meters to feet
int feet;
float inches;
public: //no-args constructor
Distance() : feet(0), inches(0.0), MTF(3.280833F)
{ }
//EXPLICIT one-arg constructor
explicit Distance(float meters) : MTF(3.280833F)
{
float fltfeet = MTF * meters;
feet = int(fltfeet);
inches = 12*(fltfeet-feet);
}
void showdist() //display distance
{ cout << feet << "\'-" << inches << '\"'; }
};
////////////////////////////////////////////////////////////////
int main()
{
void fancyDist(Distance); //declaration
Distance dist1(2.35F); //uses 1-arg constructor to
//convert meters to Distance
// Distance dist1 = 2.35F; //ERROR if ctor is explicit
cout << "\ndist1 = "; dist1.showdist();
float mtrs = 3.0F;
cout << "\ndist1 ";
// fancyDist(mtrs); //ERROR if ctor is explicit
return 0;
}
//--------------------------------------------------------------
void fancyDist(Distance d)
{
cout << "(in feet and inches) = ";
d.showdist();
cout << endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?