小编ezp*_*sso的帖子

C中的精确宽度整数类型(stdint.h)

我希望char,short和int类型的宽度为1,2和4字节.我在我的源代码中包含了一个stdint.h标题.这是否保证int8_t,int16_t和int32_t整数类型的宽度是指定的?实现这一目标的最佳方法是什么?

c size integer

3
推荐指数
1
解决办法
4650
查看次数

Intel 64 (EM64T)系统上char类型的大小

我听说某些 64 位系统上有 16 位长字符类型。Intel 64 (EM64T) 系统上的 char 类型的大小是多少?

c c++ 64-bit

3
推荐指数
1
解决办法
6699
查看次数

如何从vb6模块中引发事件?

我开发了一个自定义的visual basic 6控件并声明了一些自定义事件.是否有可能在vb6中从模块中引发这些事件,或者我需要在我的控件中实现一个特殊的"代理"方法来执行此操作?

vb6

3
推荐指数
1
解决办法
7110
查看次数

使数学向量类能够识别初始化列表

我有一个数学矢量类,其设计如下:

class Vector3D {
public:
    float x;
    float y;
    float z;

public:
    Vector3D() {}
    Vector3D(float xx, float yy, float zz = 0.0) { x=xx; y=yy; z=zz; }
    Vector3D(const float v[]) { x=v[0]; y=v[1]; z=v[2]; }
    Vector3D(const Vector3D& v) { x=v.x; y=v.y; z=v.z; }

    // math member methods
    // ...
};
Run Code Online (Sandbox Code Playgroud)

我曾经使用以下方法在堆栈上创建一个Vector3D类型的变量:

Vector3D vec1 = Vector3D(1.0, 1.0, 1.0);
Run Code Online (Sandbox Code Playgroud)

我听说可以通过实现初始化列表构造函数来缩短C++ 0x,因此可以编写如下内容:

Vector3D vec1 = { 1.0, 1.0, 1.0 };
Run Code Online (Sandbox Code Playgroud)

实现这个的正确方法是什么?

更新

花括号的语法真的很适合这个类!感谢您的回答和评论!

此外,我做了一些综合性能测试,试图测量构造函数初始化列表是否在构造函数中提供了成员变量赋值的加速.以下是我用g ++ 4.6.1得到的结果:

  1. 原样(构造函数和自定义复制构造函数中的成员赋值):

    Median:       634860 ns
    Median, CPI:  15.8715 …
    Run Code Online (Sandbox Code Playgroud)

c++ initializer-list c++11

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

不透明的参考而不是PImpl.可能吗?

PIMPL Idiom是一种实现隐藏的技术,其中公共类包装公共类所属的库外部无法看到的结构或类.这会隐藏来自库用户的内部实现细节和数据.

但是可以实现相同的参考使用吗?

MCanvasFont.h

namespace Impl {
    class FontDelegate;
}

class MCanvasFont
{
public:
    MCanvasFont();
    virtual ~MCanvasFont();

protected:
    // Reference count
    long m_cRef;

    // agg font delegate
    const Impl::FontDelegate& m_font;
}
Run Code Online (Sandbox Code Playgroud)

MCanvasFont.cpp

// helpers
#include "ImplHelpers/FontDelegate.h"

MCanvasFont::MCanvasFont()
: m_cRef(1),
  m_font(Impl::FontDelegate() )
{
    // constructor's body
}
Run Code Online (Sandbox Code Playgroud)

PS此代码编译时没有任何G ++问题.

c++ design-patterns idioms

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

什么时候创建和销毁静态成员?

何时创建并销毁特定C++类的静态成员?假设我已经定义了一个WinVersion类:

WinVersion.h

class WinVersion {
public:
    // static methods
    static WinVersion& Get();
    static bool Is_NT();

    // singleton
    static WinVersion m_version;

    // constructor
    WinVersion();

private:
    unsigned short m_PlatformId;
    unsigned short m_MajorVersion;
    unsigned short m_MinorVersion;
    unsigned short m_BuildNumber;
};
Run Code Online (Sandbox Code Playgroud)

WinVersion.cpp:

// static members
WinVersion WinVersion::m_version = WinVersion(); // unsure if it's good enough

// static functions
WinVersion& WinVersion::Get() {
    return m_version;
}

bool WinVersion::Is_NT() {
    return (m_version.m_PlatformId == VER_PLATFORM_WIN32_NT);
}

// constructor
WinVersion::WinVersion()
{
    OSVERSIONINFO osinfo;
    osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    ... …
Run Code Online (Sandbox Code Playgroud)

c++

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

Visual Basic 6(VB6)的颜色选择器控件

我要寻找的Visual Basic 6,像一个自由的颜色选择器控制这个这个。有没有?

更新。这是我到目前为止发现的:

  1. Photoshop风格的拾色器
  2. 带有示例代码的拾色器控件

vb6

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

如何从基于C++的COM对象写入VB6立即窗口?

我开发了一个基于C++的COM对象,以便在VB6应用程序中使用它.现在我需要添加一些日志来捕获一些bug.我从"如何在Visual Studio 6.0中调试COM对象"的问题中找到了我可以使用该OutputDebugString函数的问题.但是有可能以某种方式写入VB6立即窗口吗?

c++ vb6 com debugging logging

0
推荐指数
1
解决办法
1225
查看次数

标签 统计

c++ ×5

vb6 ×3

c ×2

64-bit ×1

c++11 ×1

com ×1

debugging ×1

design-patterns ×1

idioms ×1

initializer-list ×1

integer ×1

logging ×1

size ×1