【发布时间】:2017-01-21 13:53:53
【问题描述】:
刚开始用c++,在java和python中做了一些编码,但是一直报错:
非标准语法;使用'&'创建指向成员的指针
尝试多次更改代码,但无法解决问题。问题在于我的主要功能中的 void setRadius。
circleType.h
#include <iostream>
using namespace std;
class circleType {
private:
double radius;
public:
circleType();
void setRadius();
double getRadius();
};
circle.cpp
circleType::circleType() {}
void circleType::setRadius() {
cout << "what is the radius of your circle: ";
cin >> radius;
}
double circleType::getRadius() {
cout << "your radius is: " << radius << endl;
return radius;
}
int main() {
circleType circle;
circleType::setRadius;
double radius = circle.getRadius;
return 0;
}
编辑
已解决的简单语法错误 - 这解决了我的问题。
circle.setRadius();
double radius = circle.getRadius();
【问题讨论】:
-
指针在哪里?
-
circle.setRadius();双半径 = circle.getRadius();无论您在哪里学习 C++,都可以从其他地方学习。
-
删除第二行。
main()的第三行必须是circle.getRadius()。如果没有(),这两行(表面上)都会尝试评估成员函数的地址,而不是调用它,而正确的做法是像编译器所说的那样使用&。 -
那个也是。因为它不会为问题添加任何有用的东西。但是你确实会因为发布一个糟糕的问题而被否决。它无法提供minimal reproducible example,甚至从未解释过问题是什么。请参阅How to Ask 解决此问题。
-
您被否决的原因有几个:1) 您没有提出具体问题。 2) 您没有包含确切的错误消息,也没有告诉我们您在收到错误消息时要执行的操作。 (编译?链接?执行?)。 3)您没有将代码简化到复制问题所需的最低限度。
标签: c++ function pointers void