小编use*_*241的帖子

用于unicode编码的wchar_t的大小

是否有32位宽的字符用于编码UTF-32字符串?我想这样做std::wstring,显然在Windows平台上显示我的宽字符大小为16位.

c++ unicode

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

比较两个空指针

C99 6.3.2.3/3 值为 0 的整型常量表达式,或此类转换为 void * 类型的表达式,称为空指针常量。55) 如果将空指针常量转换为指针类型,则生成的指针,称为空指针,保证与任何对象或函数的指针比较不相等。

它是否说两个空指针比较不相等?但他们确实:

int *a = 0;
int *b = 0;

assert(a == b); // true
Run Code Online (Sandbox Code Playgroud)

我想知道在这种情况下有什么不平等?

c null pointers c99

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

我只需要基类中的虚拟机吗?

我有从派生类派生的类,例如:

class A
{
public:
    virtual void doSomething() {}
    virtual ~A{}
};

class B : public A
{
    //...something...
    void doSomething() {}
}

class C : public B
{
    //...something...
    void doSomething() {}
}

class D : public B, public C
{
    //...something...
    void doSomething() {}
}
Run Code Online (Sandbox Code Playgroud)

我的问题如标题所述:无论我如何使用它,我是否只需要基类中的虚函数?

例如:

A *p = new B
delete p;

B *p2 = new C
delete p2;
Run Code Online (Sandbox Code Playgroud)

c++

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

获取控制台中的输入大小

你如何获得控制台的大小输入字符串或缓冲区中有效字符的大小?

char buffer[100];
cin >> buffer;
Run Code Online (Sandbox Code Playgroud)

我想把'\ 0'放在输入结束的地方.

c++

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

位级字节序

如何在位级检查OS的'endianness'或OS是否甚至关心这些位的存储顺序?

c++ windows x86 computer-architecture

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

为什么Java不允许对象在栈上?

我正在学习一些具有 C++ 背景的 Java 课程和对象课程。我想知道为什么我们不能选择在堆栈内存上声明的对象?为什么除了原始类型之外的所有内容都必须放在堆上?

这是澄清我所问内容的一些内容。

本质上,如果我们有:

Scanner input = new Scanner(System.in);

那么为什么我们不能首先将它放在堆栈上呢?

java heap-memory stack-memory

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

“codecvt_utf8_utf16”和“codecvt_utf8”之间的区别,用于从UTF-8转换为UTF-16

我遇到了两个代码片段

std::wstring str = std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>>().from_bytes("some utf8 string");
Run Code Online (Sandbox Code Playgroud)

和,

std::wstring str = std::wstring_convert<std::codecvt_utf8<wchar_t>>().from_bytes("some utf8 string");
Run Code Online (Sandbox Code Playgroud)

它们是否都是将存储的 utf-8 转换std::string为 utf-16 的正确方法std::wstring

c++ unicode codecvt c++11

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

如何判断const char*是否指向有效字符串?

std::string str = "string":
const char* cstr = str.c_str();
str.clear();
//here, check if cstr points to a string literal.
Run Code Online (Sandbox Code Playgroud)

cstr在调试或发布模式下运行程序时,如何检查是否仍指向字符串?

有没有办法在C++中使用异常处理来确定这个?

c++ memory-management

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

私人班级数据

你应该保留除了班级功能以外的所有数据吗?例如:我有一个std ::整数列表,我需要在其他类中访问.你会如何迭代它,你真的想把它保密吗?

编辑:

我正在寻找对其他课程中每个元素的个人访问权限.

c++ stl

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

C中的名称空间

我有以下代码:

typedef struct Y {int X;} X;
enum E {X};
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

错误:'X'重新声明为不同类型的符号

据我所知,C隐式定义了结构,联合和枚举标记以及它们的成员的名称空间.所以,我不确定为什么会E::X碰到typedef结构标签X

C中的名称空间究竟是什么?

c namespaces c99

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

使用 printf 将 int 转换为 char

我只是想知道以下是否是将 int 转换为 char 的正确方法

#include <stdio.h>

int main()
{
   int x = 500;
   printf("%hhd\n", x);
}
Run Code Online (Sandbox Code Playgroud)

另外,从上面我想知道是否应该执行以下操作来显示字符的值。

#include <stdio.h>

int main()
{
   char c = 'a';
   printf("%hhd\n", c);
}
Run Code Online (Sandbox Code Playgroud)

还是会printf("%d\n", c);没事的?所以,基本上我试图通过 printf 输出整数的第一个字节而不进行任何转换。

c printf c99

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