小编q09*_*987的帖子

在类中使用union

我看到一些代码如下:

class A 
{
private:
    union {
        B *rep;
        A *next;
    }; // no variables of this anonymous defined!

    void func()
    {
        A *p = new A;

        p->next = NULL; // why p has a member variable of 'next'?
    }
};
Run Code Online (Sandbox Code Playgroud)

我用VS2010编译了上面的代码没有任何错误.这是问题,

为什么p有成员变量'next'?

    union {
        B *rep;
        A *next;
    };
Run Code Online (Sandbox Code Playgroud)

据我所知,这是一个匿名联盟,甚至没有定义变量.我们如何才能像这样访问这个联合中的成员变量?

c++ class unions

12
推荐指数
2
解决办法
1万
查看次数

`__new__`中的`super()`是什么?

注意:使用Python的flyweight实现的一部分

import weakref

class CarModel:
    _models = weakref.WeakValueDictionary()

    def __new__(cls, model_name, *args, **kwargs):
        model = cls._models.get(model_name)
        if not model:
            model = super().__new__(cls)
            cls._models[model_name] = model    
        return model

    def __init__(self, model_name, air=False):
        if not hasattr(self, "initted"):
          self.model_name = model_name
          self.air = air
          self.initted=True
Run Code Online (Sandbox Code Playgroud)

问题1>什么super()意思?这是否意味着父类CarModel

问题2>我也很难理解该功能的__new__工作原理?具体来说,以下行.

model = super().__new__(cls)
Run Code Online (Sandbox Code Playgroud)

说明__new__:

构造函数被调用__new__而不是__init__,并且只接受一个参数,即正在构造的类(在构造对象之前调用它,因此没有自参数).它还必须返回新创建的对象.

python python-3.x

12
推荐指数
2
解决办法
8050
查看次数

opengl - 如何使用GL_POINTS绘制正方形像素

我尝试使用以下代码绘制一个带opengl的方形像素

glPointSize(5.0f);
glBegin(GL_POINTS);
glVertex3f(1.0f, 1.0f, 1.0f);
glEnd();
Run Code Online (Sandbox Code Playgroud)

但是,最终结果是圆形像素.

请查看参考资料http://risknfun.com/compform/w1.html 请参阅"问题4.网格".在右侧,显示图像具有方形像素.

opengl

11
推荐指数
2
解决办法
2万
查看次数

为什么在Pycharm 1.5.4中始终禁用"使用块注释进行注释"

我发现菜单代码| "注释与块注释"始终禁用.

怎么解决?

pycharm

11
推荐指数
2
解决办法
1万
查看次数

amxn网格上存在多少个子矩形

给定m x n网格,这样的网格上存在多少个唯一的子矩形?

例如,

1 x 1 网格有1个子矩形.

1 x 2 网格有3个子矩形.

我正在寻找一个可用于直接计算现有子矩形数的通用公式.

algorithm

11
推荐指数
3
解决办法
2万
查看次数

CSS - 这个选择器的含义是什么

adfafdadfadsf

div.alert.error {
background:url("v3.png") no-repeat scroll 7px -643px #FFEEEE;
}
Run Code Online (Sandbox Code Playgroud)

选择器"div.alert.error"是否表示以下内容?

选择包含类警报和错误的DIV.

是否有不同之处

CaseI:   div.alert.error
CaseII:  div.alert .error
CaseIII: div .alert .error
Run Code Online (Sandbox Code Playgroud)

谢谢

css css-selectors

10
推荐指数
1
解决办法
383
查看次数

ASP.NET AutoEventWireup和Inherits的含义是什么?

鉴于以下声明,

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="XXX.aspx.cs" Inherits="XXX" %>
Run Code Online (Sandbox Code Playgroud)
  1. 是什么意思AutoEventWireup
  2. 如果值AutoEventWireup等于false,该怎么办?
  3. Inherits属性中XXX的含义是什么?
  4. 我在ASP.NET 2008中的自动创建文件中找不到XXX的定义.XXX在哪里定义?

谢谢

asp.net

10
推荐指数
1
解决办法
2万
查看次数

C++ - 分区的类型?

我想确保我对C++部门的返回类型的理解,

int / int => return is int?

float / float => return is which type? float?

double /double => return is double?

int / double => return is double?

int / float => return is float?
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我.

谢谢

c++

10
推荐指数
2
解决办法
6469
查看次数

使用标量类型的"const"的好处?(例如"const double"或"const int")

///////////////////////////////////////
class A {
    ...
    const double funA(void)
    {...}
};

A a;
double x = a.funA(); 
// although the intention is to
// enforce the return value to be const and cannot be
// modified, it has little effect in the real world.

class A2 {
    ...
    double funB(void)
    {...}
};

///////////////////////////////////////
class A {
    void setA(const double d)
    { // now you cannot change the value of d, so what?
      // From my point of view, it is NOT …
Run Code Online (Sandbox Code Playgroud)

c++

10
推荐指数
1
解决办法
5253
查看次数

如何在vs2010中更改默认评论颜色

Tool/Options/Environment/Fonts and Colors
Run Code Online (Sandbox Code Playgroud)

我有问题找到我应该更改哪个颜色显示项目,以便更改三次斜杠评论的默认颜色:

/// code here
Run Code Online (Sandbox Code Playgroud)

现在,我可以更改标准单行注释的颜色显示项目

// code here.
Run Code Online (Sandbox Code Playgroud)

有小费吗?

谢谢

visual-studio-2010

10
推荐指数
3
解决办法
5933
查看次数