前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >error: '[class name]' does not name a type

error: '[class name]' does not name a type

作者头像
恋喵大鲤鱼
发布2018-08-03 15:11:50
2.6K0
发布2018-08-03 15:11:50
举报
文章被收录于专栏:C/C++基础C/C++基础

这个问题困扰了我好几个小时,真的很痛苦,所以记录一下。

我编译平台是Linux,编译命令如下:

代码语言:javascript
复制
g++ -g -Wall -std=c++11 -I/usr/local/mysql/include -I/usr/local/curl/include -o obj/tc_mysql.o -c tc_mysql.cpp

从命令中可以看出,我是对源文件tc_mysql.cpp进行编译。但是却始终报如下错误:

代码语言:javascript
复制
tc_mysql.cpp:12:1: error: 'TC_Mysql' does not name a type
TC_Mysql::TC_Mysql()

我发誓,我在源文件中一定包含了头文件,也不会像网上所说的存在多个头文件的相互依赖,头文件和源文件如下:

代码语言:javascript
复制
//头文件tc_mysql.h

#ifndef __TC_MYSQL_H
#define __TC_MYSQL_H

#include <mysql.h>

namespace mysqlHelper
{
class TC_Mysql 
{
public:
    /**
    * @brief 构造函数
    */
    TC_Mysql();

protected:
    /**
    * @brief copy contructor,只申明,不定义,保证不被使用 
    */
    TC_Mysql(const TC_Mysql &tcMysql);

    /**
    * @brief 只申明,不定义,保证不被使用
    */
    TC_Mysql &operator=(const TC_Mysql &tcMysql);

private:
    /**
    * 数据库指针
    */
    MYSQL *_pstMql;
};
}
#endif 
代码语言:javascript
复制
//源文件tc_mysql.cpp
#include "tc_mysql.h"

namespace taf
{
    TC_Mysql::TC_Mysql():_bConnected(false){
        _pstMql = mysql_init(NULL);
    }
}

聪明的你也许发现了问题的原因,但是我当时却困惑了很久,百度和google许久都没有解决问题,最后才发现端倪,真的是被自己坑了,原来使用命名空间的时候头文件和源文件的命名空间不一致所导致的问题。

写代码,真的要细心,切勿粗心啊!!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年06月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档