腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
4
回答
声明
,然后定义类方法-
为什么
是错误?
为什么
这不编译?方法Test::foo没有被重载--它是具有完全相同签名的相同
函数
。
浏览 7
提问于2017-06-22
得票数 0
回答已采纳
1
回答
模板
声明
中省略了
c++
类型参数。但是,
在
成员
函数
的定义
中
呢?
、
、
对不起,我是
c++
编程的初学者。class A{}template<typename T>A func(A t) {}此外,我知道,如果
成员
函数
是
在
类之外定义的但是,我发现
函数
的参数类型
中
的类型参数也可以省略。
为什么
是这样? 我的意思
浏览 4
提问于2017-10-27
得票数 2
回答已采纳
1
回答
为什么
在
C++
中
允许
重新
声明
模板
成员
函数
?
上面的代码将无法编译,并显示以下错误: error: declaration of 'int test::call()' outside of class is not definition 但是,如果这样使用
模板
,则
允许
使用相同的代码: class test{ template<class T>}; int test::call(){ return
浏览 4
提问于2021-07-21
得票数 4
回答已采纳
1
回答
为什么
GoF建议
在
C++
模板
方法模式实现中使用受保护的(而不是私有的)虚拟方法?
、
、
、
来自四人帮的
模板
方法模式: “这确保它们仅由
模板
方法调用。”不是真的,对
浏览 2
提问于2012-03-07
得票数 15
回答已采纳
1
回答
类
模板
特殊
成员
函数
显式专门化
、
、
、
在
c++
中
,iso 2003/2011 tem.ex.spec/4写到 类
模板
的
成员
函数
、
成员
类或静态数据
成员
可以显式地专门化为隐式实例化的类专门化;在这种情况下,类
模板
的定义应该在类
模板
成员
的显式专门化
声明
点上如果对类
模板
成员
的这种显式专门化为隐式
声明
的特殊
成员
函数
命名
浏览 0
提问于2015-01-06
得票数 1
回答已采纳
5
回答
函数
模板
的默认
模板
参数
、
为什么
只
允许
在
类
模板
上使用默认
模板
参数?
为什么
我们不能在
成员
函数
模板
中
定义默认类型?例如: template<class T=int> // ...}; 相反,
C++
强制只
允许
在
类
模板
上使用默认
模板
浏览 1
提问于2010-03-15
得票数 194
回答已采纳
6
回答
为什么
模板
不能在外部的"C“块
中
?
、
、
、
+发布编译器错误,Comeau C/
C++
说"error:此
声明
可能没有外部"C”链接“。+标准的第7.5节链接规范规定: };如果在外部"C“块中
允许
模板
,则实例化的
成员</em
浏览 11
提问于2011-02-02
得票数 28
回答已采纳
2
回答
多个
成员
函数
正向
声明
在
C++
中
,我可以有多个
函数
的正向
声明
,比如:void Func (int); // another forward declaration, compilesfine然而,当我对
成员
函数
执行相同的操作时(无论我是否包含定义),VC++ 2010void Func (int);
浏览 1
提问于2011-05-12
得票数 9
1
回答
模板
类
中
的
模板
成员
专门化
、
string{"foo"}; } { std::cout << a.func<int>() << std::endl;这是不可行的,因为
模板
类的
模板
成员
的专门化是不可能的但是,如果将
成员
专门化的定义移到类定义
中
,则确实有效:#include <string> template<typename U&
浏览 0
提问于2019-08-16
得票数 4
回答已采纳
1
回答
声明
的
C++
编译顺序
整数'i‘是
在
构造
函数
/print方法中使用它之后
声明
的,但是代码已经成功编译。我的理解是,
C++
AST是
在
解析文件时生成的;因为
C++
编译器应该先查看一个令牌,所以
在
解析器超过1个令牌之前,我们不应该知道'i‘是一个有效的
成员
。显然我在这有个误会。 编译器如何能够编译这个呢?它是否简单地跳过
函数
定义,然后解析这些定义?
浏览 6
提问于2022-03-07
得票数 0
回答已采纳
2
回答
什么是C
中
的编译时封装?
当我研究C相对于
C++
的优点时,我偶然看到了这一段:
在
C
中
,标准的封装方式是转发、
声明
一个结构,并且只
允许
通过
函数
访问它的数据。此方法还创建编译时封装。编译时封装
允许
我们更改数据结构
成员
,而无需
重新
编译客户端代码(使用我们的接口的其他代码)。另一方面,封装
C++
的标准方法(使用类)需要在添加或删除私有
成员
变量时
重新
编译客户端代码。我理解如何向前
声明
一个struc
浏览 4
提问于2019-11-17
得票数 9
回答已采纳
1
回答
在
C++
标准
中
“类的
成员
模板
”指的是什么?
、
C++
标准规定:
模板
声明
中
的
声明
应
声明
或定义
函数
或类,或定义类
模板
的
成员
函数
、
成员
类或静态数据
成员
,或嵌套在类
模板
中</em
浏览 0
提问于2011-02-20
得票数 2
回答已采纳
1
回答
在
某些情况下,
为什么
会出现名称隐藏而不是
重新
定义?
、
在
C++
中有一个定义规则,规定(C++2020年草案,6.3,第1段):int main(){ int a=2;//Code 2 int a=1; int a=2;} 代码1由于
重新
定义而生成错误,这是不
允许</em
浏览 1
提问于2021-10-14
得票数 1
2
回答
具有
模板
参数和类外默认参数的类的
成员
函数
、
、
、
、
我想在
模板
类之外定义
函数
,如下所述。{ 我希望它是定义在外部类实际获得编译器错误,如果它是简单的类型,我可以很容易地
在
第二个参数中提到
浏览 0
提问于2019-08-16
得票数 3
回答已采纳
1
回答
模板
类
成员
函数
之间的循环依赖关系
、
给定两个
模板
类,每个
模板
类都包含引用其他类
中
成员
函数
的
成员
函数
,如何做到这一点?如果有的话。通过使用前向
声明
来
允许
循环依赖项,意味着该定义对于引用的
成员
函数
不可用。不能将
成员
函数
的定义推送到cpp文件,而是包含完整的类定义而不是前向
声明
,因为它必须存在于头中,以便在使用/调用时
允许
编译器实例化。因此,我感兴趣的是,<e
浏览 1
提问于2015-06-23
得票数 1
回答已采纳
1
回答
对于
在
类之外初始化的静态
成员
的
声明
,是否需要constexpr说明符?
、
、
、
、
C++17§10.1.5/1
声明
: constexpr说明符只适用于变量或变量
模板
的定义或
函数
或
函数
模板
的
声明
。自C++11 (§7.1.5/1)以来,标准
中
也有类似的一段,他
在
中
引用了这一段落,他
在
该段落
中
认为,“
C++
标准做而不是”要求constexpr说明符
在
变量的
声明
和定义之间进行匹配。上一段的最后一条语句显式地要求
浏览 1
提问于2018-05-21
得票数 10
1
回答
为什么
在
类
声明
中
定义类
模板
成员
函数
时
允许
显式专门化,而不
允许
单独定义类
模板
成员
函数
?
、
我看到了许多StackOverflow文章,其中说类
模板
成员
函数
的专门化
在
C++
中
是不合法的,除非封闭类也是专门化的。然而,另一篇文章似乎表明,只要专门化
函数
的定义出现在
模板
类的类
声明
中
,就可以对
成员
模板
函数
进行专门化,如下所示:class A {,当在类
声明
中提
浏览 2
提问于2012-06-18
得票数 1
回答已采纳
5
回答
指向未指定类类型的
成员
函数
指针-有可能吗?
、
、
、
是否可以
声明
一个
函数
指针(非
C++
11),它可以指向任何类的
成员
函数
(即:不是特定的类)? 例如,如果我有A、B和C类,C
中
声明
了一个
函数
指针,我希望
在
指向B的
成员
函数
和A的
成员
函数
之间切换该指针。
C++
允许
这样做吗?
浏览 0
提问于2012-01-18
得票数 5
回答已采纳
2
回答
为什么
允许
泛型lambda,而不
允许
模板
化方法的嵌套结构?
、
、
、
、
据我所知,泛型lambda被转换为具有
模板
化operator()的本地作用域结构的对象。这使得一般的lambda非常强大,并且易于使用。另一方面,当结构有
模板
成员
时,可以创建嵌套在
函数
中
的结构,例如: struct inner { struct inner { };
浏览 3
提问于2016-10-25
得票数 34
回答已采纳
1
回答
枚举和指向
成员
的指针。
、
、
、
考虑到类、结构和联合是唯一与指针对
成员
函数
兼容的类型,我决定让编译器确定用于实例化is_class
模板
的类型是否与指针到
成员
函数
兼容。
在
遇到几个问题后,我决定在与指针对
成员
一起使用时测试枚举的行为,并得到了一些奇怪的结果。. */Test(NULL); 使用Microsoft Visual
C++
2010编译时,
函数
定义的指针到
成员
部分:(ENUM::*pmem)。以红色高亮显示,并在
声明<
浏览 2
提问于2011-03-05
得票数 11
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
聊聊C+的类和面向对象编程
VS Code C+扩展:自动创建函数的定义和声明
C++20:核心语言
C+20:缩写函数模板和约束性Auto
C++ 错题本--duplicate symbol问题
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
腾讯会议
活动推荐
运营活动
广告
关闭
领券