关于网友提出的“C++提示非标准语法;请使用 "&" 来创建指向成员的指针,如何解决啊?”问题疑问,本网通过在网上对“C++提示非标准语法;请使用 "&" 来创建指向成员的指针,如何解决啊?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:C++提示非标准语法;请使用 "&" 来创建指向成员的指针,如何解决啊?
描述:#include
using namespace std;
class MyClass
{
public:
MyClass(double x,double y) { x = count,y = value; }
MyClass() { count = 0, value = 0; }
double tripleByValue(double);
double tripleByReference(double &);
void setvalue();
private:
double count;
double value;
};
void MyClass::setvalue()
{
cout << "输入一个数并计算立方" << endl;
cin>>count;
}
double MyClass::tripleByValue(double m_count)
{
value=count*count*count;
return value;
}
double MyClass::tripleByReference(double &count)
{
value= count*count*count;
return value;
}
int main(void)
{
MyClass a;
a.setvalue();
cout << "按值传递的value为:" << endl;
a.tripleByValue;
cout << "按引用传递的value为:" << endl;
a.tripleByReference;
return 0;
}
解决方案1:
int main(void)
{
MyClass a;
a.setvalue();
cout << "按值传递的value为:" << a.tripleByValue(参数) << endl;
cout << "按引用传递的value为:" << a.tripleByReference(参数) << endl;
return 0;
}
没参数的话,编译器将会理解成函数指针,但函数指针需要这样写:&MyClass::tripleByValue
解决方案2: tripleByValue和tripleByReference又没有设默认值,楼主不能这样调用的,必须传值
tripleByReference因为是引用传递所以传的必须是个变量
int main(void)
{
MyClass a;
a.setvalue();
cout << "按值传递的value为:" << endl;
a.tripleByValue(1.1);
cout << "按引用传递的value为:" << endl;
double b = 1.2;
a.tripleByReference(b);
return 0;
}
以上介绍了“C++提示非标准语法;请使用 "&" 来创建指向成员的指针,如何解决啊?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1468976.html