草庐IT

has_begin_member

全部标签

c++ - "Provides no initializer for reference member..."

经过一些谷歌搜索后,我找不到这个问题的答案。如何初始化它,为什么需要初始化?#include"CalculatorController.h"CalculatorController::CalculatorController(SimpleCalculator&aModel,ICalculatorView&aView){\\(thisisthebracketinformingmeoftheerror)fModel=aModel;fView=aView;}标题:#pragmaonce#include"ICalculatorView.h"#include"SimpleCalculator.h

c++ - __has_cpp_attribute 不是 'function-like' 宏?

我正在尝试将[[deprecated]]属性引入我的代码库。然而,并不是所有我需要支持的编译器都支持这种语法(在attributestandardizationproposalN2761中描述了标准化之前不同编译器使用的各种方法)。因此,我尝试在此属性中有条件地编译,首先使用__has_cpp_attribute类宏函数(如果可用),如下所示:#ifdefined(__has_cpp_attribute)&&__has_cpp_attribute(deprecated)#defineDEPRECATED(msg)[[deprecated(msg)]]#elifOTHER_COMPILE

c++ - 在 C++ 中重载 "+"orerator 时 that.vect.push_back(0) 和 that.vect.begin() 出错

classPolinom{public:std::vectorvect;Polinomoperator+(constPolinom&that){if(this->vect.size()>that.vect.size()){for(inti=that.vect.size();ivect.size();i++)that.vect.push_back(0);//here}elseif(that.vect.size()>this->vect.size()){for(inti=this->vect.size();ivect.push_back(0);}std::vectorsum;std::ve

c++ - 在继承 : Can I override base class data members?

假设我有如下两个类:ClassA{public:..private:intlength;}ClassB:publicClassA{public:..private:floatlength;}我想知道的是:是否允许覆盖基类数据成员?如果是,这是一种好的做法吗?如果不是,扩展类数据成员类型的最佳方法是什么?有一个类满足了我的需求,我想重用它。但是为了我的程序需要,它的数据成员应该是另一种类型。我有一些书,但它们都只涉及重写基类成员方法。 最佳答案 您可以使用模板化成员,即通用成员,而不是覆盖成员。您还可以声明一个类似union的VARI

C++ Linux : error: ‘move’ is not a member of ‘std’ how to get around it?

所以在我的VS2010上我可以编译如下代码:boost::shared_ptrinternal_thread;boost::packaged_taskinternal_task_w(boost::bind(&thread_pool::internal_run,this,internal_thread));internal_thread=boost::shared_ptr(newboost::thread(std::move(internal_task_w)));前两行在boost1.47.0和linux上没问题...但是在std::move上它给出了error:‘move’isnota

c++ - std::list<>:l.begin() 之前的元素

简短的问题:使用与我不同的其他编译器(mingw32),以下代码是否不安全,或者是否可以使用?listl;/*addelements*/list::iteratori=l.begin();i--;i++;cout...或者换句话说:i是否定义为指向此之后的l.begin()? 最佳答案 是的,代码是不安全的。一旦您尝试在begin()之前移动,您就会导致未定义的行为。尝试“再次返回”可能行不通。 关于c++-std::list:l.begin()之前的元素,我们在StackOverflo

c++ - 没有匹配函数调用 ‘begin(int**&)’

我写了一个c++程序作为fllow(3.43.cpp):#includeusingstd::cout;usingstd::endl;voidversion_1(int**arr){for(constint(&p)[4]:arr){for(intq:p){cout然后我用:gccmy.cpp-std=c++11编译它,有一个我无法处理的错误。信息:3.43.cpp:6:30:error:nomatchingfunctionforcallto‘begin(int**&)’for(constint(&p)[4]:arr){^3.43.cpp:6:30:note:candidatesare:I

c++ - 错误 : request for member '..' in 'this' , 是非类类型 '--* const'

这是我的第一个问题。请原谅,我刚刚进入C++并开始使用DS。堆叠!!!我的代码:我认为usingnamespacestd;typedefcharstackElement;classStack{public:stackElement*contents;//dynamicallyallocated:aswedonotknowwhatwouldbethesizeofourarray.inttop,maxSize;//currentTopindexinthearray//maxsizeofthearray;weneedittoknowifthearrayisfullStack(intmaxSi

c++ - 为什么我不能将 std::begin/std::end 与 int(*p)[3] 一起使用,而我可以与 int(&p)[3] 一起使用?

这个有效:voidfoo(int(&a)[3]){autoibegin=begin(a);autoebegin=end(a);}虽然这不是:voidfoo(int(*a)[3]){autoibegin=begin(a);autoebegin=end(a);}我认为int(&a)[3]和int(*a)[3]是同一个意思! 最佳答案 您的代码类似于:voidfoo(vector&a){autoibegin=begin(a);autoebegin=end(a);}voidfoo(vector*a){autoibegin=begin(a);

C++ 错误 : request for member '...' in 'grmanager' which is of non-class type 'GraphicsManager'

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我的类GraphicsManager出现错误。图形管理器.cpp:#include"C:\Users\ChrisUzzolina\Desktop\obj\include\GraphicsManager.h"#include#includeGraphicsManager::GraphicsManager(intSCREEN_WIDTH,intSCREEN_