就像在主题中 - 是否有任何软件可以打开(什么?),在这里我甚至不知道打开什么 - 文件与目标代码或exe?我今天的问题(如果只是今天;))可能看起来有点奇怪,但我正在通过BS的"C++编程语言"进行练习,有时我只是坚持特定的问题.我有时会对这本书的风格(在很多方面都很出色)感到有点恼火,他(BS)会在他的书中提出一些你无法回答的问题,如何去做,甚至从哪里开始.像这样的例如:
运行一些测试,看看你的编译器是否真的使用指针生成迭代的等效代码,并使用索引进行迭代.如果可以请求不同程度的opimization,请查看是否以及如何影响生成的代码的质量.
这是第5章问题8.到目前为止,本书中没有提到测试和分析编译器生成的代码.无论如何,如果有人可以帮助我,我会很高兴.谢谢.
我现在玩的是比特,正在查看io状态的微软代码并发现了这样的事情:
enum _Iostate
{ // constants for stream states
_Statmask = 0x17};//What is this mask for???
static const _Iostate goodbit = (_Iostate)0x0;
static const _Iostate eofbit = (_Iostate)0x1;
static const _Iostate failbit = (_Iostate)0x2;
static const _Iostate badbit = (_Iostate)0x4;
static const _Iostate _Hardfail = (_Iostate)0x10;
Run Code Online (Sandbox Code Playgroud)
我只是想知道为什么这个掩码因为代码在没有这个掩码的情况下工作,并且值与whitout这个掩码保持一致.谢谢.
有人能指出我的文章,在Qt环境中可用的pragma指令会被讨论吗?
我想要这样的声明:
void Date::get_days_name(const Date& = this)
Run Code Online (Sandbox Code Playgroud)
我会理解,如果没有提供参数,请使用此对象作为参数.出于某种原因在VS中我得到了错误的信息:
'错误1错误C2355:'this':只能在非静态成员中引用'
知道我做错了什么吗?
我想能够写:
cout << enumalpha << Monday;
Run Code Online (Sandbox Code Playgroud)
并在控制台上打印:
星期一
PS Monday是一个枚举类型.
请不要介意没有插入fnc并且数据是硬编码的.它的主要用途是为这个容器正确实现迭代器.
//file Set.h
#pragma once
template<class T>
class Set
{
template<class T>
friend ostream& operator<<(ostream& out, const Set<T>& obj);
private:
T** myData_;
std::size_t mySize_;
std::size_t myIndex_;
public:
Set();
class iterator : public std::iterator<std::random_access_iterator_tag, T*>
{
private:
T** itData_;
public:
iterator(T** obj)
{
itData_ = obj;
}
T operator*() const
{
return **itData_;
}
/*Comparing values of two iterators*/
bool operator<(const iterator& obj)
{
return **itData_ < **obj.itData_;
}
/*Substracting two iterators*/
difference_type operator-(const iterator& obj)
{
return itData_ - obj.itData_; …Run Code Online (Sandbox Code Playgroud) 为什么不允许这样做:
int a = 0;
int a = 0;
Run Code Online (Sandbox Code Playgroud)
但这是:
for (int i = 0; i < 2; ++i)
{
int a = 0;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,for循环中的代码将执行两次实际超出其范围,因此定义两次也应该是一个错误.
期待您的回答
谢谢.
谁能告诉我如何检查我从*b得到的号码?我想知道这个数字的每个部分,例如,如果这个表达式的结果是25,我想知道第一个数字是2,第二个数字是5.