频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
简单计算程序运行时间 and 解决模板实例重复链接问题
2018-03-10 11:13:11         来源:修也  
收藏   我要投稿

简单计算程序运行时间 and 解决模板实例重复链接问题。

#ifndef __TIMESPEC_H_
#define __TIMESPEC_H_
#include


class TimeSpec{
    private:
        static clock_t start;
        static clock_t end;
    private:
        static double cost_time();
    public:
        static void begin();
        static double to_end();
        static void print_cost_time();
};


clock_t TimeSpec::start = 0;
clock_t TimeSpec::end = 0;
void TimeSpec::begin(){
    start = clock();
}
double TimeSpec::to_end(){
    end = clock();
    return cost_time();
}
double TimeSpec::cost_time(){
    return double(end - start)/CLOCKS_PER_SEC;
}

void TimeSpec::print_cost_time(){
    println("From beginning to end totally costs: ",to_end()," s");
}

#endif

某个程序的运行时间:


From beginning to end totally costs: 0.342 s

 

编译过程曾遇到如下错误:

: error LNK2005: "void __cdecl println(void)" (?println@@YAXXZ) already defined in LargePic1.obj
: fatal error LNK1169: one or more multiply defined symbols found

解决办法:

本文件#include"xxx.hpp"中包含模板,而本文件中有调用其中的模板,则本文件将声明和实现写在一个本文件(头文件)里.
因为本次编译过程中,遇到了hpp和cpp编译的模板的实例重复包含定义问题,即使用了#ifndef #define #endif 也没办法.具体原因不清楚.
使用模板的时候,调用者声明和实现写在一个文件里,防止冲突.
点击复制链接 与好友分享!回本站首页
上一篇:RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9
下一篇:Spring JDBC ResultSetExtractor接口
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站