我一直在尝试学习如何在CPP中的类中声明函数:
这是我写的程序:
//Passing object as function arguments and returning objects
#include <iostream>
using namespace std;
class item{ //Function can be declared either within the class (in that case, there is no need of making the data private)
int price;
float cost;
public:
int newFunction(item a){
a.cost=10;
a.price=40;
return a.cost;
}
} obj1;
int main(){
cout << item::newFunction(obj1);
return 0;
}
有人能说出为什么编译器给出错误“一个非静态成员引用必须是相对于一个特定对象的”。
还有,有人能说出::(作用域解析运算符)和使用.(点运算符)访问类元素之间的区别吗。我有点搞不清这两者之间的区别,谷歌搜索这个区别并没有带来任何匹配的结果。
这是你的答案:-
错误消息:
14:35: error: cannot call member function 'int item::newFunction(item)' without object
你不能只调用一个类函数而不创建它的任何对象,因为如果类函数不是先在RAM中创建的,你就不能直接访问它,这就是为什么我们要创建一个类的对象。
我在main函数中创建了一个临时对象obj2,它可以正常工作。
这是增加的一行
#include <iostream>
using namespace std;
class Item { //Function can be declared either within the class (in that case, there is no need of making the data private)
int price;
float cost;
public:
int newFunction(item a) {
a.cost=10;
a.price=40;
return a.cost;
}
} obj1;
int main() {
Item obj2;
cout << obj2.newFunction(obj1);
return 0;
}
输出:
10
另外,在命名类时不使用camelcase也不是一个好的做法,所以请记住这一点:)
这是你的答案“::”“之间的区别是什么。”和“->”
COUT<
NewFunction()
声明为
Static
时才起作用。否则,如果要调用成员函数,就必须创建一个对象。
项obj;
然后调用
obj.newFunction(obj1);
请帮帮我 致命错误:在第104行的/home/u357965800/public_html/include/class.admin.php中对非对象调用成员函数prepare()
我为我的RecyclerView设置了一个ItemClickLister,如下所示: 使用我翻译成Kotlin的ItemClickSupport库。 我在(第2行)上收到一个错误,它说: 对象必须声明为抽象或实现抽象成员。 我真的是静态编程语言的新手,我在SO上也找不到任何解决方案。 非常感谢您的帮助。 编辑: 这是我的项目ClickSupport。kt: 这是一个包含整个错误的屏幕截图,以及错误
这是我代码的一部分 我得到一个错误致命错误:对$stmt行上的非对象调用成员函数bind_param()-
我得到一个错误与此文本:(对不起,我的英语不好,我来自德国!) 错误:
我正在准备一个全新的ASP. NET MVC 5.1解决方案。我正在添加一堆Nuget包,并将其与Zurb Foundation等一起设置。 作为其中的一部分,我添加了对内部NuGet包的引用,该包是一个可移植类库,我认为这在构建服务器上造成了问题。 TeamCity因以下原因导致构建失败: 类型'System.对象'在未引用的程序集中定义。您必须添加对程序集System的引用。运行时,版本=4.
我正在使用这个CloudForm模板创建一个Cognito用户池: 是当前和工作用户池的输出: 我在创建堆栈(当然使用不同的名称)时出现此错误,即使堆栈有效: 检测到1个验证错误:架构处的值“phone_number_verified”。18.成员.name”未能满足约束:成员的长度必须小于或等于20(服务:AWSCognitoIdentityProviderService;状态代码:400;错误