社区
C++ 语言
帖子详情
动态读取变量
nicochang
2003-12-19 06:01:54
假设object是一个对象,里面有Name,Id,Number等成员变量。
var是一个变量
我想实现的是这样一种功能,比如var的值是Name,那么我就可以取得object.Name中的值
如果var的值是Id,那么我就可以取得object.Id中的值
也就是,我不想建立一个switch case 的映射,有没有办法实现
...全文
59
9
打赏
收藏
动态读取变量
假设object是一个对象,里面有Name,Id,Number等成员变量。 var是一个变量 我想实现的是这样一种功能,比如var的值是Name,那么我就可以取得object.Name中的值 如果var的值是Id,那么我就可以取得object.Id中的值 也就是,我不想建立一个switch case 的映射,有没有办法实现
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
newegg2002
2003-12-20
打赏
举报
回复
to plainsong(短歌)
我太菜了,想就他的程序问大家几个简单的问题,希望大家给我解答一下,
我谢谢大家了,!@!!
1.我的编译器也是VC6.0的,可是加了#include<string.h>或者是#include <string>
using namespace std;
都不能构造string的对象.粘下来的贴子,只要有这样的语句,编译器就老提醒:没定义
2.定义变量的时候,std::string是不是随意的呢,我想应该不是啊,他是什么意思啊,
3.那个回车符为什么非得用std::endl,只用endl不也行吗,怎么就,不行啊,
还有就是,我有点小建议,上面的那个程序,main()函数忘了加返回语句
nicochang
2003-12-19
打赏
举报
回复
刚刚回来,谢谢大家,你们的意思是用模板来做,模板不是很熟悉,要去看看,看看能不能实现
实际上,问题是这样:有若干个lib,这些lib中都有很多的成员变量,有的有100多了,都是数据库中字段的映射,这一次需要解决的问题是,程序运行时其他的组件会传给我一个变量,这个变量的值就是某一个lib中的一个成员变量的名字,改动lib是不可能的,而用switch...case ,实现一方面太麻烦,另一方面如果lib变动,这也要作相应的修改
qhgary
2003-12-19
打赏
举报
回复
不是不可能,但是在C++中可能比较困难,因为它要求他们在类型上面至少要有共性,这在Java中,或者C#中就能够实现,因为他们都派生于某一特殊根类
glacierrr
2003-12-19
打赏
举报
回复
struct var
{
enum type;// { int, char, float.....}
union value
{
int iValue;
float lValue;
......
};
};
abitz
2003-12-19
打赏
举报
回复
#include <iostream>
#include <string>
using namespace std;
class test
{
public:
test(const string& name = string(), const string& id = string(),
const string& number = string())
: name_(name), id_(id), number_(number) { }
string name_;
string id_;
string number_;
};
void main()
{
size_t var;
string test::*members[] = { &test::name_, &test::id_, &test::number_ };
test a("liukai", "abitz", "100031100");
cin >> var;
cout << a.*members[var];
}
短歌如风
2003-12-19
打赏
举报
回复
首先要求Name、Id、Number等变量类型相同。下面假设是std::string类型:
#include<iostream>
#include<string>
class Foo
{
public:
std::string Name;
std::string Id;
std::string Number;
};
typedef std::string Foo::*var_t;
int main()
{
var_t Var;
Foo a,b;
a.Name = "a";
a.Id = "1";
a.Number = "123";
b.Name = "b";
b.Id = "2";
b.Number = "122";
Var = &Foo::Name;
std::cout << a.*Var << " " << b.*Var << std::endl;
Var = &Foo::Id;
std::cout << a.*Var << " " << b.*Var << std::endl;
Var = &Foo::Number;
std::cout << a.*Var << " " << b.*Var << std::endl;
std::cin.get();
}
langzi8818
2003-12-19
打赏
举报
回复
var是什么类型的变量你自己不知道吗?
不太知道楼主的意思
soyan
2003-12-19
打赏
举报
回复
把var定义为字符型变量,Name ,Id ,Number都存为字符型就可以了
antijpn
2003-12-19
打赏
举报
回复
首先你要确定var是什么类型的变量,如果这一点无法确定,后面的操作根本无法展开。
不用switch case那就要用if else了,更麻烦
cmd
动态
创建和
读取
变量
本文介绍了如何在CMD命令行中
动态
创建和
读取
变量
,详细解析了CMD处理
变量
的过程,包括识别
变量
、设置
变量
及
读取
变量
的方法。通过示例展示了如何利用for循环和set命令实现
变量
的
动态
操作,并解释了为何直接通过%num%k%%无法
读取
动态
变量
值,提出了使用set命令配合for/f
读取
的解决方案。
动态
sql
读取
变量
本文介绍了一种使用T-SQL
动态
执行SQL语句的方法来更新数据库中菜单项的显示顺序。通过设置
变量
和执行存储过程的方式,实现了根据不同类别
动态
获取最大显示顺序值的功能。
CSS自定义
变量
在JS中
动态
读取
_利用setProperty处理兼容赋值
本文详解JavaScript中
读取
和设置CSS自定义
变量
的方法:使用getComputedStyle().getPropertyValue()获取
变量
值(需确保
变量
已作用于目标元素),注意返回字符串类型及空字符串判据;通过element.style.setProperty()
动态
修改
变量
,但其作用域限于当前元素且IE完全不支持。重点涵盖兼容性兜底策略、性能避坑(如避免循环频繁调用)、SSR/Node环境限制及强制重排技巧。
springboot项目配置
动态
注入与springboot
读取
docker环境
变量
文章介绍了如何在Kubernetes中部署MySQL+Tomcat应用,讲解了SpringBoot如何
读取
和
动态
注入环境
变量
,包括通过命令行参数和配置文件。同时,展示了Dockerfile中设置环境
变量
的方法,以及在KubernetesDeployment中注入环境
变量
到Pod中的过程。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章