啊啊啊,是第一次在这个小博客里发文,从来没有发过文章,编程水平也很低,权当给自己记录各种开发时遇到的问题。万一有大神进来了以极其高超的武功传我一招半式也说不定呢!!!
————————————————————————–分 —— 隔 —— 线 ————————————————————————————————————————-
数据处理软件、编码测试软件
1、背景
2、需求
实验中会涉及到编码的模拟测试,编码后数据的处理。
模拟测试包括硬件环境的模拟与信 发生、数据处理需要将编码的信 解码并进行一系列显示。
关于编码和解码的方法是它人开发,需要整套系统对编码开发者透明,只提供简单的为使用接口。
3、计划
开发一套软件(其实就是几块代码啦┗( T﹏T )┛),希望开发三个模块,一个是规定了编码的编码方法和解码方法,主要内容为两个函数,参数使用封装的input_inf和output_inf。一套编码方案需要其编写者给出编码和解码方法;二是测试组件,负责规定硬件环境,以及生成一系列测试数据,需要绑定(以某种形式( ̄~ ̄) 嚼!)编码方案后使用;三是数据处理及显示,负责将数据解码进行可视化处理和统计分析。
4、问题
如何绑定编码方案和其他组件在太小白,没有开发经验。使用的设想是实验人员自行编写编码方法和解码方法,然后在主程序中(可以考虑简单的GUI)进行绑定,如Set_codmethod()。后根据需求进行测试和数据处理。
5、解决方案
- 设计类结构,分为三个class,实现绑定。
(失败啦!)我想将编码方案封装为class, 编写好basic_method class,而所有编码方案是basic class 的子类。测试环境的数据也打包成class,内包括一些环境数据(成员变量)和一些测试函数(成员方法),使用时将测试环境的class实例化,内部有一个basic_method class成员变量,绑定时将该变量赋值为测试方案的实例。
不过失败了,测试环境调用编码方案的函数时调用了父类即basic_method class的方法。
(下续)
2015/9/7 更
第一个解决方案可以使用了!既然父类充当模板或接口,需要将成员方法设定为虚函数,即virtual关键字修饰。这样接收basic_method class的函数接收到advanced_method class 实例时会自动调用子类即advanced_method class的方法。
哎,c++或者java课肯定都学过,不过不使用就没有明白其设计者的真正含义。
下接测试代码。
输出
advanced
现类结构如下:
还发生了一个小bug插曲,就是构造函数或其他传入basic_cod_gen指针的成员方法一开始并不是传入指针,传入的basic_cod_gen实例,导致指针错误。原因很简单,实参传入时被拷贝,在构造函数内取地址赋给 basic_cod_gen *cod,实际传入无效地址,导致程序运行时指针错误。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!