跟我学C++高级篇——名称反射创建对象的一种实现的说明

一、具体情况

在前面的文章“名称反射创建对象的一种实现”发布后,有同学问为什么在实例中既给了模板的名称,又给了字符串名称,这还有什么意义呢?这个问题非常好,当时一时偷懒,没有把事情说清楚,这篇文章算是对提问同学的一个回答。
其实很简单,如果把实现的类名和声明的类型换成不同的类,同时这个需要反射的类必须继承前面提到的ClassInstance,再在给定的类(即Worker)中实现一个创建,那么整个反射的过程就符合了一般反射的习惯。

二、补充例程

基于上面的分析,看下面的代码分析即可明白:

......

//测试类
class Worker {
   
   
public:
    Worker() {
   
   }
    Worker(int a, int b) : a_(a), b_(b) {
   
   }

public:
    void display() {
   
    std::cout << "-this is Worker display function!--:" << a_ + b_ << std::endl; }

private:
    int a_ = 0;
    int b_ = 0;
};

class Worker1 {
   
   
public:
    Worker1() {
   
   }
    Worker1(int a) {
   
   }

public:
    void display1() {
   
    std::cout << "--this is worker1 display1 function--" << std::
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值