草庐IT

lldb_private

全部标签

c++ - 错误 C2248 : 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'

我无法理解这个错误。这个错误不在我正在调试的类中。(是吗?)错误是:c:\programfiles\microsoftvisualstudio10.0\vc\include\fstream(890):errorC2248:'std::basic_ios::basic_ios':cannotaccessprivatememberdeclaredinclass'std::basic_ios'1>with1>[1>_Elem=char,1>_Traits=std::char_traits1>]1>c:\programfiles\microsoftvisualstudio10.0\vc\inc

c++ - 从类定义中省略 "private"关键字是否令人困惑?

我最近删除了类定义中指定的private,因为它位于顶部,紧跟在class关键字之后:classMyClass{private:intsomeVariable;//...我认为这是多余的。一位同事不同意这一点,称它有效地“隐藏”了数据的private性质。我们的大多数遗留代码都明确声明了访问说明符,并且通常在整个定义中不一致地混合使用它们。我们的类(class)也往往非常大。我正在努力使我的新类足够小,以便我的类定义类似于:classMyClass{//3-4linesofprivatevariablesprotected://3-4linesofprotectedfunctionsp

c++ - 未解析的外部符号 "private: static int Math::result"

这个问题在这里已经有了答案:Whatisanundefinedreference/unresolvedexternalsymbolerrorandhowdoIfixit?(38个答案)关闭8年前。这是我的类定义:#includeusingnamespacestd;classMath{private:staticintresult;public:staticintadd(inta,intb){result=a+b;returnresult;};};这是主要的:#include#include"Amin.cpp"usingnamespacestd;intmain(){Math::add(2

c++ - 您可以覆盖基类中定义的私有(private)函数吗?

我相信,派生类只能覆盖它从基类继承的那些函数。我的理解对吗?也就是说,如果基类有一个公共(public)成员函数func,那么派生类可以覆盖成员函数func。但是如果基类有一个私有(private)成员函数foo,那么派生类就不能覆盖成员函数foo。我说的对吗?编辑在研究了SO成员给出的答案后,我想出了一个代码示例。我提到了我在代码中作为注释研究的要点。希望我是对的。谢谢/*Pointstoponder:1.Irrespectiveoftheaccessspecifier,thememberfunctionscanbeoverrideinbaseclass.Butwecannotdir

c++ - C++ 中的私有(private)方法与 Lambda

我的问题是指:Usingalambdaexpressionversusaprivatemethod现在lambda仿函数是C++的一部分,它们可以用来整理类的接口(interface)。在C++中,lambda使用vs私有(private)方法使用如何比较?有没有更好的替代方案来替代整洁的类接口(interface)? 最佳答案 虽然lambdas绝对可以取代一些私有(private)成员函数,但将它们视为整理类接口(interface)的手段对lambdas和私有(private)成员函数的看法过于狭隘。私有(private)成员

c++ - 如何防止派生类公开私有(private)/ protected 虚函数?

将所有虚函数构造为私有(private)或protected基类接口(interface)是有充分理由的(参见this)。但是,如何防止派生类(可能在外部客户手中)将私有(private)虚函数设为公共(public)呢?在VirtuallyYours,作者讨论了这个问题,但没有讨论解决方案。编辑:根据您的回答和我之前的想法,似乎没有办法阻止这种情况。但由于在这种情况下,很容易出错(客户端肯定会触及protected虚函数),编译器对这种用法发出警告是有道理的。我试着用g++测试它。首先,我写道:classA{protected:virtualvoidnone(){return;}};

c++ - 为什么派生类的大小包括来自基类的私有(private)成员?

我有以下代码:classA{private:inti;};classB:publicA{private:intj;};当我检查sizeof(B)时,它似乎是sizeof(base)+sizeof(derived)。但是,我对继承的理解是,基类的private成员不被继承。为什么它们包含在sizeof(B)的结果中? 最佳答案 所有成员变量都是继承的。privateprotectedpublic修饰符只会改变那些访问这些变量的人 关于c++-为什么派生类的大小包括来自基类的私有(priva

c++ - pimpl 类中的私有(private)成员?

pimpl习语中使用的实现类有任何私有(private)成员吗?我真正能想到的唯一原因是保护自己免受自己的伤害——即私有(private)成员用于在类和用户之间执行某种契约,在这种情况下,类和用户关系密切,所以它似乎没有必要。 最佳答案 我认为人们将Pimpl惯用法与Adapter/Bridge/Strategy模式混淆了。习语是特定于一种语言的。模式可以应用于多种语言。Pimpl惯用法旨在解决C++中的以下问题:类的私有(private)成员在类声明中可见,这会向类的用户添加不必要的#include依赖项。此习语也称为编译器防火墙

java - 在 OOP 中,Private 成员对谁来说是私有(private)的?

例如,在OOP中为什么需要放置一些Private。我知道无法访问任何私有(private)成员,但具有相同的类对象。但为什么我需要这样做,而我是我项目的唯一编码员。同样的问题延伸到Protected,protectedfromwho! 最佳答案 private和protected不是为了防止其他编码人员访问类的内部,而是(也)防止你自己创建一个没有明确定义接口(interface)的程序。如果你项目中的每个类都可以修改其他所有类,你不仅容易因为巨大的状态空间而引入错误,而且还会阻止你自己:更改任何类的实现(同时保持接口(interf

c++ - LLDB:如何检查 unordered_map

大多数其他STL容器打印良好,但unordered_map是一个烂摊子。我使用operator用于打印,但这与打印无关,这是关于当我崩溃并且我想从LLDB提示符打印出我的哈希值时。我不能调用类似callcout的东西因为那行不通。除了例如,没有其他解决方案吗?链接本身使用cout的模板函数?那行得通吗?(我正在尝试,但它不起作用,因为我必须提前知道模板参数类型是什么,以便为它们生成和链接代码) 最佳答案 您应该能够检查unordered_map对象本身,而无需对其调用方法。例如,以这个简单的程序为例:#include#include