16得票1回答
C++中是否有便捷构造函数?

一个重载的构造函数是否可以在类内部以某种方式调用另一个构造函数,类似于下面的代码?class A { public: A(std::string str) : m_str(str) {} A(int i) { *this = std::move(A(std::to_string...

15得票3回答
为什么const char *会隐式转换为bool而不是std :: string?

#include <iostream> #include <string> struct mystruct{ mystruct(std::string s){ std::cout<<__FUNCTION__ &l...

11得票3回答
使用可变参数模板构造函数的类构造函数优先级,用于值包装器

今天我发现我不理解C++构造函数的优先级规则。 请参考以下模板struct wrapper template <typename T> struct wrapper { T value; wrapper (T const & v0) : value{v0...

11得票2回答
Python类型提示友好的类型,限制可能的值。

我想要一种对Python类型提示友好的方式来创建一个具有约束值范围的类型。 例如,基于类型str的URL类型,只接受看起来像是"http" URL的字符串。 # this code is made up and will not compile class URL(typing.NewTy...

10得票6回答
为什么我的C++构造函数过载没有被调用?

我有一个类似这样的类:class Test{ public: Test(string value); Test(bool value); }; 如果我像这样创建一个对象:Test test("Just a test..."); bool构造函数被调用了! 有人知道为什么吗? 谢谢

8得票2回答
C++重载构造函数的调用存在歧义

假设我有以下虚拟类定义: class Node { public: Node (); Node (const int = 0); int getVal(); private: int val; ...

8得票1回答
C++11构造函数重载解析和初始化列表:clang++与g++意见不一

我有一小段C++11代码,g++(4.7或4.8)拒绝编译并声称B2 b2a(x,{P(y)})的构造函数调用是模棱两可的。 Clang ++对该代码感到满意,但拒绝编译B2 b2b(x,{{P(y)}}),而g ++可以完美地编译它! 两个编译器都可以接受以{...}或{{...}}作为参数...

8得票2回答
std::strings的std::initializer_list的奇怪行为

这个问题可能已经被问过了,但我没有找到答案。 下面的代码可以通过gcc编译,但在运行时会崩溃,出现std::length_error异常 (实例)。 void test(const std::string &value) { std::cout << "string o...

7得票6回答
重载“base”构造函数还是“this”构造函数?

我有几种类型是从简化的Base派生出来的,如下所示。 当重载构造函数时,我不确定是否要使用基类的构造函数或this构造函数。 ConcreteA仅使用base构造函数重载构造函数,而 ConcreteB则在前两个重载中使用this。 哪种方式更好地重载构造函数? public abst...

7得票8回答
Python: 重载构造函数的问题

警告:我学习Python仅仅十分钟,所以如果问了一些愚蠢的问题,请原谅! 我写了以下代码,但是出现了以下异常: 信息 文件 名称 行数 位置 追溯 节点 31 exceptions.TypeE...