C++ Can';t通过引用传递常量对象
我正在练习类声明/实现/通过引用传递对象。以下是我的主类、头文件和其他类的代码:C++ Can';t通过引用传递常量对象,c++,object,pass-by-reference,C++,Object,Pass By Reference,我正在练习类声明/实现/通过引用传递对象。以下是我的主类、头文件和其他类的代码: //Header file (Circle2.h) #ifndef CIRCLE_H #define CIRCLE_H class Circle{ private: double radius; public: Circle(); Circle(double newRadius); double getArea() const;
//Header file (Circle2.h)
#ifndef CIRCLE_H
#define CIRCLE_H
class Circle{
private:
double radius;
public:
Circle();
Circle(double newRadius);
double getArea() const;
double getRadius() const;
void setRadius(double newRadius);
};
#endif
//Main class (PassObjectByReference.cpp)
#include <iostream>
#include "Circle2.h"
using namespace std;
void printCircle(const Circle &c){
cout << "The area of the circle of " << c.getRadius() << " is " << c.getArea() << endl;
}
int main(){
Circle myCircle(5.0);
printCircle(&myCircle);
return 0;
}
//Other class (Circle2.cpp)
#include "Circle2.h"
Circle::Circle(){
radius = 1;
}
Circle::Circle(double newRadius){
radius = (newRadius >= 0) ? newRadius : 0;
}
double Circle::getRadius() const{
return radius;
}
double Circle::getArea() const{
return radius * radius * 3.14159;
}
void Circle::setRadius(double newRadius){
radius = (newRadius >= 0) ? newRadius : 0;
}
//头文件(Circle2.h)
#伊芬德夫圆
#定义圆
班级圈子{
私人:
双半径;
公众:
圆圈();
圆(双半径);
双getArea()常量;
双getRadius()常量;
空隙设置半径(双倍新半径);
};
#恩迪夫
//主类(PassObjectByReference.cpp)
#包括
#包括“圈2.h”
使用名称空间std;
无效打印圆(常数圆和c){
不能删除&
-这将把它变成一个指针,这不是您想要的。您应该只写:
printCircle( myCircle );
放下&
——这将把它变成一个指针,这不是你想要的。你应该写:
printCircle( myCircle );
正确的说法是:
printCircle(myCircle);
正确的说法是:
printCircle(myCircle);