社区
C++ 语言
帖子详情
动态读取变量
nicochang
2003-12-19 06:01:54
假设object是一个对象,里面有Name,Id,Number等成员变量。
var是一个变量
我想实现的是这样一种功能,比如var的值是Name,那么我就可以取得object.Name中的值
如果var的值是Id,那么我就可以取得object.Id中的值
也就是,我不想建立一个switch case 的映射,有没有办法实现
...全文
35
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了,更麻烦
C#访问OPC
读取
数据
C#访问OPC
读取
数据 一般用于自动化编程
linux 读 键盘,linux 从键盘
读取
变量
值 命令:read
read命令从键盘
读取
变量
的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次
读取
多个
变量
的值,
变量
和输入的值都需要使用空格隔开。在read命令后面,如果没有指定
变量
名,
读取
的数据将被自动赋值给特定的
变量
REPLY语法read (选项) (参数)选项-p:指定
读取
值时的提示符;-t:指定
读取
值时等待的时间(秒)。参数
变量
:指定
读取
值的
变量
名。实例下面的列表给出了read命令的常用方式...
CSS:
变量
的声明和
读取
一、
变量
的声明 在
变量
名前面加个连接号--,这样就成功声明了一个css
变量
变量
只能用作属性值,不能用作属性名。 :root{ --color: #fff; } 二、
变量
的
读取
var()函数用于
读取
变量
。 div{ color: var(--color); } var() 还有个可选参数,表示默认值,即不存在该
变量
时使用该值 div{ color: var(--color, #000); } 三、
变量
值的类型 1、当
变量
值类型为字符串,可与其他字符串进行拼接 body::after{ -
python从文本中
读取
变量
值_从文本文件中检索
变量
值的最佳方法?
关于this question,我有一个相似但不相同的问题。。在路上,我会有一些文本文件,结构如下:var_a: 'home'var_b: 'car'var_c: 15.5我需要python
读取
文件,然后创建一个名为var_a的
变量
,值为“home”,依此类推。示例:#python stuff over heregetVarFromFile(filename) #this is the funct...
Jmeter-csv文件参数化
读取
变量
Jmeter-csv文件参数化
读取
变量
1.创建CSV文件2.在线程组中添加并配置CSV Data Set Config3.引用文件中
变量
来执行请求4.查看结果 我们在用Jmeter做性能测试时经常会碰到一个接口中用到多个
变量
,这时候就可以使用csv文件帮助我们解决这个问题。 1.创建CSV文件 在桌面创建一个test.csv文件,根据自己要用的
变量
写入,第一行为
变量
名可写可不写 2.在线程组中添加并配置CSV Data Set Config 添加CSV Data Set Config 文件名的路径一定要
C++ 语言
65,206
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章