Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Can';t通过引用传递常量对象_C++_Object_Pass By Reference - Fatal编程技术网

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);