草庐IT

private_extern

全部标签

C++ 错误编译,因为私有(private)成员

我的主类Task有一个私有(private)成员:private:Task();我添加了一个派生类Scheduler,继承自类Task:classScheduler:publicTask{friendclassTask;`我创建了一个文件Scheduler.cc来实现派生类Scheduler的构造函数:Scheduler::Scheduler(){//nothinghere.}我尝试使用空白的构造函数Scheduler进行编译,但我收到一个编译错误,我不理解其中的关系,因为我的构造函数Scheduler是空白的:/tmp/PROJETO/T1/booos-t1/lib/Task.h:I

c++ - 封装私有(private)枚举

之前我已经在类的头文件中定义了旨在私有(private)的枚举类型。private:enumfoo{a,b,c};但是,我不想再公开枚举的详细信息。在实现中定义枚举是否类似于定义类不变量?constintClassA::bar=3;enumClassA::foo{a,b,c};我想知道这是否是正确的语法。 最佳答案 C++没有枚举的前向声明,因此您不能将枚举“类型”与枚举“实现”分开。在C++0x中以下是可能的://foo.hclassfoo{enumbar:int;//mustspecifybasetypebarx;//canus

c++ - 成员函数不能访问私有(private)成员

我得到了以下代码#include#includetemplateclassdemo{Tdata;public:demo();demo(democonst&k);demo(constT&k);demo&operator=(constdemo&k);templatedemo(constdemo&k);templatedemo&operator=(constdemo&k);~demo();};templatedemo::demo():data(){}templatedemo::demo(democonst&k):data(k.data){}templatedemo::demo(constT&

c++ - 私有(private)新运营商是否有任何意想不到的副作用?

我读入了this博客,将新运算符设为私有(private)是在堆栈上强制实例化的好方法。我正在实现一个使用RAII习惯用法的类。这个类显然应该只在堆栈上实例化,所以我正在寻找一种方法来强制执行。我的问题是,这是否有任何不能直接看到的副作用?在堆栈上强制实例化是一种好方法吗?是否存在任何可移植性问题?感谢您的帮助!编辑我的RAII类只是实例化了我正在处理的框架的各个部分,因此除了在堆栈上创建一个实例之外,对该类做任何其他事情都没有意义。目标只是提供一种简单的可能性来配置框架并将其置于可用状态,而无需在客户端代码中实例化10个对象。 最佳答案

c++ - 在 c/c++ 中使用 extern 背后的概念是什么?

很抱歉提出此类问题。但是,我对C\C++中的关键字extern非常好奇。在搜索extern的解释时,我了解到extern告诉编译器变量或函数已经在其他文件或程序中定义。但如果是这种情况,那我们为什么要使用extern?因为我尝试了一些代码如下:externintvar;intmain(void){var=10;return0;}这段代码给我的错误消息是unresolvedexternalsymbol"intvar"(?var@@3HA)。如果我使用的代码如下:externintvar;intmain(void){intvar=10;return0;}它没有显示任何错误,并且给出的值与我

c++ - 如何使用内联函数说明符将 "hide"私有(private)成员函数?

有一个包含private成员函数的类,我想标记为inline(明确标记我的意图,即特定函数可能被内联),但不要将它们的实现暴露给API使用者。为简单起见,它可能看起来像:飞机.h:classAirplane{charmanufacturer[80];charmode[80];//...public:voidautopilot_steer_left(intdegree);//...private://...inlineboolvalidate_hydraulic_on_left_wing();//secret,patent-based,etc.};飞机.cpp:#include"Airp

c++ - 为什么在父类中声明虚函数时出现 Unresolved external 错误?

我有这个父类:enumUI_STATE{UI_STATE_SPLASH_SCREEN,UI_STATE_LOGIN_SCREEN,UI_STATE_CHARACTER_CREATION_SCREEN,UI_STATE_CHARACTER_CHOOSE_SCREEN,UI_STATE_LOADING_SCREEN,UI_STATE_GAMEPLAY,UI_STATE_EXIT_REQUESTED,UI_STATE_UNKNOWN};[event_source(native)]classUserInterface{protected:MyGUI::Gui*mGUI;public:stati

C++ 单例用法 : compiler complains about private constructor

我知道有一百万个关于单例的问题和答案,但我似乎无法找到解决方案。所以冒着反对票的风险,这是我的问题:我想使用AndreiAlexandrescu的现代C++设计中的单例实现:标题:classSingleton{staticSingleton&Instance();private:Singleton(){};Singleton(constSingleton&){};Singleton&operator=(constSingleton&){};~Singleton(){};};实现:#include"s.hh"Singleton&Singleton::Instance(){staticSi

c++ - 可以从外部访问私有(private)运营商吗?

即如果我在我的类中的私有(private)部分中定义运算符==和+,它们可以从main访问吗?它在MSVS2008和2010中有效,但对我来说它似乎是编译器中的错误。是这样吗? 最佳答案 在私有(private)访问说明符下声明的函数或成员将无法在类成员函数之外访问。在C++中,类/结构/union有3个访问说明符。这些访问说明符定义了如何访问类的成员。当然,类的任何成员都可以在该类中访问(在同一类的任何成员函数中)。继续访问访问说明符的类型,它们是:Public-声明为Public的成员可通过类的对象从类外部访问。Protecte

c++ - 打开CV : unresolved external symbol

我知道这个问题是alloverplace,但将库目录添加到项目属性的魔术棒对我来说仍然不起作用。我关注了tutorialforVisualStudio(2013年我在这里)和environmentvariablesetup适用于opencv3.0beta。它与测试它!部分中的代码相同。这是vs中构建输出的标题:1>------Buildstarted:Project:OpenCVTest,Configuration:DebugWin32------1>opencv_core300d.lib(matrix.obj):errorLNK2019:unresolvedexternalsymbo