c++ - 如何在 int main 中访问 val1 和 val2?
问题描述
我曾尝试将范围解析与 main 和 get() 一起使用,但似乎我在这里没有做任何事情。
#include <iostream>
using namespace std;
class base {
public:
float val1, val2;
void get() { cout << "Enter two values..." << endl, cin >> val1 >> val2; }
friend float mean(base ob);
};
float mean(base ob) { return float(ob.val1 + ob.val2) / 2; }
int main() {
base obj;
obj.get();
cout << "Mean of " << val1 << " and " << val2 << " is: " << mean(obj);
return 0;
}
解决方案
首先,您需要从课堂之外进行制作val1
和val2
访问:
...
class base {
public:
float val1, val2;
public:
...
然后你需要指定你想要访问val1
并且val2
属于 object obj
:
cout<<"Mean of "<<obj.val1<<" and "<<obj.val2<<" is: "<<mean(obj);
你也可以mean()
做得更好一点:
float mean(const base& ob) {
return float(ob.val1+ob.val2)/2;
}
如果您不想公开val
,val2
那么您可以创建将返回其值的公开方法:
class base {
float val1, val2;
public:
auto get_val1() const { return val1; }
auto get_val2() const { return val2; }
推荐阅读
- python - OpenCV 3.4.3 说 SIFT 已获得专利。在python中免费实现SIFT的任何其他方式?
- android - 为什么当我使用 Kotlin 在 onCreateView 上调用 btnOpen 时返回 null?
- latex - LaTeX:表格形式的边距线
- python - python logging - 由父类创建时如何处理日志文件名
- html - 将 Instagram 加载到框架中
- response - 无法知道原因回复“找不到此运单号。请核对号码或联系发件人”
- python - 从熊猫数据框中的列中删除所有字母和特殊字符
- arrays - 无法在数组 Angular 中添加对象
- c# - .net core 2.1 中预期的中间件未调用
- java - @FeignClient 在类型不匹配中没有失败