草庐IT

private_struct

全部标签

c++ - 派生类析构函数如何在以下程序中被调用为私有(private)的?

#includeclassbase{public:virtual~base(){std::cout上面的程序可以正常编译和运行。派生类析构函数如何被调用为私有(private)的? 最佳答案 这不仅会发生在析构函数中。您可以用私有(private)函数覆盖任何虚拟公共(public)函数。#includeclassbase{public:virtualvoidx(){std::coutx();//OK//((derived*)pt)->x();//error:‘virtualvoidderived::x()’isprivateder

c++ - 如何在 UML 类图中显示私有(private)继承关系

在C++中,由于私有(private)继承不被视为is-a关系,它应该如何在类图中显示以及是否显示为has-a关系那么如何区分组合和私有(private)继承呢? 最佳答案 应该是Composition关系(子类这边的实心黑菱形),因为:私有(private)继承的意思是“根据……实现”,但在这方面,它可以简单地视为“具有”关系。子类的实例明确拥有对象的基类部分,并且所有权不与任何其他对象共享。 关于c++-如何在UML类图中显示私有(private)继承关系,我们在StackOverf

c++ - 如何允许全局函数访问私有(private)成员

如何允许全局函数访问私有(private)成员?限制是你不能直接friend类声明中的全局函数。原因是因为我不希望用户必须在头文件中看到所有这些全局函数。函数本身是在实现文件中定义的,我希望尽可能将它们隐藏在那里。现在您可能想知道为什么我有这么多这样的全局函数。为简单起见,我将各种WNDPROC函数与windows注册为回调,并且它们必须是全局的。此外,他们必须能够更新对不同类来说是私有(private)的信息。我提出了2个解决方案,但都有些棘手。解决方案1.制作所有需要后门的成员protected而不是private.在实现文件中,声明一个继承自原始类但为protected成员提供公

c++ - 为什么 GCC 允许从私有(private)嵌套类继承?

考虑以下代码:classA{classB{};};templateclassD:A::B{};voidf(){Dd;}D继承自A::B这是一个私有(private)嵌套类。我原以为这是一个错误,但GCC接受了这个代码。是GCC中的错误还是我遗漏了什么? 最佳答案 我找到了答案。因为它可能对其他人有用,所以我将其发布在这里-这是GCC错误47346. 关于c++-为什么GCC允许从私有(private)嵌套类继承?,我们在StackOverflow上找到一个类似的问题:

c++ - 将 'friend class xxxxx' 放在公共(public)部分还是私有(private)部分会有什么不同吗?

classA1{public:friendclassB;}classA2{private:friendclassB;}有什么不同吗? 最佳答案 不,访问说明符对friend声明没有影响。 关于c++-将'friendclassxxxxx'放在公共(public)部分还是私有(private)部分会有什么不同吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2722222/

c++ - 使用可选的 'struct' 关键字时出现 g++ 警告

如果我写这个程序:#includenamespacefoo{structbar{intx;};}intmain(void){structfoo::bar*a=newstructfoo::bar;deletea;return0;}并编译它:g++main.cxx-Wall-Wextra它给了我这个警告:main.cxx:Infunction‘intmain()’:main.cxx:10:39:warning:declaration‘structfoo::bar’doesnotdeclareanything[enabledbydefault]但是,如果我在new关键字之后取出struct关

constructor - 在 kotlin 中,如何将主构造函数中的属性 setter 设为私有(private)?

在kotlin中,如何将主构造函数中的属性setter设为私有(private)?classCity(valid:String,varname:String,vardescription:String=""){funupdate(name:String,description:String?=""){this.name=namethis.description=description?:this.description}}我希望属性name的setter是私有(private)的,而它的getter是公开的,我该怎么做? 最佳答案

constructor - 在 kotlin 中,如何将主构造函数中的属性 setter 设为私有(private)?

在kotlin中,如何将主构造函数中的属性setter设为私有(private)?classCity(valid:String,varname:String,vardescription:String=""){funupdate(name:String,description:String?=""){this.name=namethis.description=description?:this.description}}我希望属性name的setter是私有(private)的,而它的getter是公开的,我该怎么做? 最佳答案

c++ - 为什么声明私有(private)基类会使类型名称不可访问?

令我感到惊讶的是,在以下示例中声明Middle的基类私有(private)使得该名称在后续派生中无法作为类型使用。classBase{public:Base(Baseconst&b):i(b.i){}inti;};classMiddle:privateBase{//因此使用g++(Debian6.3.0-18+deb9u1)6.3.020170516...编译g++-std=c++11privateBase.cpp我得到以下诊断信息:privateBase.cpp:15:9:error:‘classBaseBase::Base’isinaccessiblewithinthisconte

c++ - 这是 C++11 中的 struct POD 吗?

这个结构是C++11中的POD吗?structB{inta;B(intaa):a(aa){}B()=default;};请注意,此问题明确针对C++11。我知道这个类不是C++98和C++03中的POD。有关C++11中POD的解释,请参阅trivialvs.standardlayoutvs.POD(受此问题启发:Isthereacompile-timefunc/macrotodetermineifaC++0xstructisPOD?) 最佳答案 是的,根据newrules是一个POD.如果您查看新标准的§8.4.2/4段,您会发现