草庐IT

ObjC-Class

全部标签

c++ - 错误 LNK2001 : unresolved external symbol "__declspec(dllimport) public: class QString & __thiscall QString::operator=(class QString &&)"

我非常想找到关于上述错误的任何信息。我正在使用visualstudio2010。当我在调试或发布中编译我的项目(32位)时,我收到以下消息:1>heterogeneous.obj:errorLNK2001:unresolvedexternalsymbol"__declspec(dllimport)public:classQString&_thiscallQString::operator=(classQString&&)"(_imp_??4QString@@QAEAAV0@$$QAV0@@Z)1>debug\nori.exe:fatalerrorLNK1120:1unresolvede

c++ - g++ 错误 : specialization after instantiation (template class as friend)

考虑以下C++代码:templateclassSingleton{};classConcreteSingleton:publicSingleton{templatefriendclassSingleton;};intmain(){}Singleton应该是ConcreteSingleton的friend:它适用于Microsoft的可视化C++编译器。但是,我不能用g++4.8.4编译它。错误是:error:specializationof‘Singleton’afterinstantiationtemplatefriendclassSingleton;有什么办法可以解决吗?

c++ - 试图理解 C++ 标准中的 [class.qual]/2

根据我得到的答案here,尽管clang和vs2015接受它,但下面的代码格式错误。#includeclassA{public:A(){std::cout尽管如此,下面的代码似乎适用于所有3个编译器(参见liveexample)。AFAICT,根据[class.qual/2]代码格式错误。或者我在这里遗漏了什么?#includestructB{B(){std::cout此外,根据[class.qual]/2,下面的代码格式正确,在这种情况下,所有3个编译器都会产生预期的输出(参见示例here)。includestructB{B(){std::cout输出:B()A()B()但我想知道u

c++ - 什么时候用 "class_name obj_name = func()"替换 "class_name obj_name{func()}"有意义?

在代码中我看到了以下结构:constclass_nameobj_name{func()};func()返回名为class_name的类的对象。所以,我想知道为什么不使用以下结构:constclass_nameobj_name=func(); 最佳答案 constclass_nameobj_name{func()};作者通过写上面的代码,试图遵循统一初始化语法(C++11引入),从而避免繁琐的解析和最令人烦恼的解析,即使是经验丰富的程序员也会意外陷入其中。他正试图将最佳实践灌输到他的大脑中,这样他就不会偶尔陷入上述解析问题,如下所述。

c++ - 在类(class)内任何时候已知的类(class)成员

我一直认为,如果我在类内部声明一个类的成员,那么这个成员在类的整个范围内都是已知的:classX{public:X(inta):v_(a){}private:intv_;//eventhoughv_isdeclaredhereI'musingitinctorwhichisabovethisline};所以这对我来说很有意义。无论如何,这不是因为我得到了v_未知的错误classX{public:X(decltype(v_)a):v_(a)//erroronthisline,compilerdoesn'tknowv_{}private:intv_;};很乐意了解原因。我正在使用英特尔编译器

c++ - 从父类(super class)调用子类中的虚函数

我知道这个问题一定被无数次问过,但我搜索了以前的问题,似乎什么也没有。它是关于C++中的继承和虚函数。我在从父类(superclass)的子类中调用虚函数时遇到问题。我举个例子。从三个相互继承的类开始。classA{voidfoo(){bar()}virtualvoidbar(){}};classB:publicA{virtualvoidbar(){}};classC:publicB{virtualvoidbar(){//dosomething}};现在我想要一个声明为B*但实例化为C*的变量。B*myObject=newC();myObject->foo();当我这样做并在myObj

C++ 设计 : cast from base to derived class with no extra data members

我编写了很多处理消息协议(protocol)的代码。消息协议(protocol)通常会有一个通用的消息帧,可以从串行端口或套接字反序列化;该帧包含消息类型,消息负载必须根据消息类型进行处理。通常我会编写一组多态类,其中包含访问器方法和一个引用消息框架的构造函数。我突然想到,我可以直接从消息帧派生访问器类,然后从消息帧重新解释_cast到适当的访问器类,而不是根据对消息帧的引用构造访问器类。这使代码更加简洁并节省了一些字节和处理器周期。请参阅下面的(极其人为和浓缩的)示例。显然,对于生产代码,这一切都需要适当封装,转换成为派生类的成员,更好地分离关注点,并添加一些验证。为了把一个简明的例

C++ 保护 : fail to access base's protected member from within derived class

不可否认,这个问题的标题听起来与你的邻居迈克反复问的问题几乎一模一样。我发现很多问题的措辞相同,但没有一个是我的问题。首先,对于这个问题的上下文,我想澄清几点:1,c++访问控制是基于类而不是基于实例。因此,下面的代码是完全有效的。classBase{protected:intb_;public:boolIsEqual(constBase&another)const{returnanother.b_==b_;//accessanotherinstance'sprotectedmember}};2,我完全理解为什么以下代码无效-另一个可以是兄弟实例。classDerived:public

c++ - 如何将 `std::array` 用作 `template<typename> class` 形式的模板参数?

请考虑以下tree类templateclassTuple>classtree{private:Tm_value;Tuplem_children;};templateusingstatic_tree=tree>;定义不明确。std::array不是Tuple的合适模板参数.我假设static_tree的意图清楚了。我们可以做类似的事情templatestructhelper{templateusingtype=std::array;};templateusingstatic_tree=tree::templatetype>;没有helper还有其他选择吗?类(class)?

c++ - 什么是 "template<class T> using owner = T;"?

以下摘自Microsoft的gsl库(https://github.com/microsoft/gsl)的gsl.h:namespacegsl{////GSL.owner:ownershippointers//usingstd::unique_ptr;usingstd::shared_ptr;templateusingowner=T;...};我无法理解以下别名模板的含义:templateusingowner=T;有什么解释吗? 最佳答案 这意味着对于每个T,owner是T的别名. 关于