【发布时间】:2014-10-27 14:48:13
【问题描述】:
我有一个common_module.h 文件,它应该存储大多数 .cpp 文件使用的结构和函数。
我希望它有一个 RColor 结构。
RColor 使用了很多来自命名空间 cv 的函数和变量。该项目的制作方式是 .cpp 文件通常不使用 cv 命名空间(所有使用它的工作主要由 RColor 等结构完成)
我不想总是在RColor 的定义中写cv::something。所以我尝试在common_module.h 中创建一个RColor 原型并将其定义为Rcolor.cpp:
//common_module.h
//...
struct RColor;
#include "stdafx.h"
#include<opencv2/opencv.hpp>
using namespace cv;
struct RColor
{
...
};
//Project0.cpp (main file)
#include "stdafx.h"
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<windows.h>
RColor col;
我得到错误:
1>error C2079: 'col' uses undefined struct 'RColor'
【问题讨论】:
-
如果我把它放在一个头文件中,我怎样才能使用这个头文件而不在所有使用它的文件中添加
using namespace cv;? -
struct RColor { using namespace cv; };产生error C2059: syntax error : 'namespace'error C2238: unexpected token(s) preceding ';' -
至于你的错误,你需要一个结构的完整定义来创建它的一个实例。
-
您是否使用了太多来自
cv命名空间的东西,以至于每次多写四个字符都很麻烦?此外,它将使代码更加清晰易读。
标签: c++ struct namespaces