프라 그마 한 번
#include "stdafx.h"
#include "Token.h"
//I would like this enum to be inside class Number
enum Number_enm {ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE};
class Number : public Token<Number_enm>//and this template parameter to be Number::Number_enm
{
private:
public:
Number(const Number_enm& num)
try:
Token(num)
{ }
catch(...)
{
cerr << "Error in Number::Number(const Number_enm&).";
return;
}
Number(const char num)
try:
Token(static_cast<Number_enm>(num & 0xf)) //get number value from char
{
#ifdef DEBUG_
cout << "Converting ctor, from char to Token.\n";
#endif
}
catch(...)
{
cerr << "Error in Number::Number(const char num).";
return;
}
};
#pragma once
/*Abstract class*/
template<class T>
class Token
{
typedef T value_type;
private:
value_type my_data_;
protected:
/*Token()
try: my_data_()
{ }
catch(...)
{
cerr << "Error in Token<T>::Token().";
return;
}*/
Token(const value_type value)
try:
my_data_(value)
{ }
catch(...)
{
cerr << "Error in Token<T>::Token(const value_type&).";
return;
}
/*Token(const Token& value): my_data(value)
{ }*/
Token& operator=(const Token& right)
{
#ifdef DEBUG_
cout << "Token& operator=(const Token& right).\n";
#endif
my_data = right;
return my_data;
}
public:
T get() const
{
return my_data_;
}
T set(const T& new_value)
{
T old = my_data_;
my_data_ = new_value;
return old;
}
};
나는 건축의이 종류를 할 수있는 경우 궁금해?내부 열거
감사합니다. 도움 주셔서 감사합니다. 나는 ctor에서 try catch 블록에 대해 읽었고, 두 권의 책과 한 개의 기사 (어느 것이지만 Scott Meyers가 쓴 기사인지는 기억하지 못한다.), Bjarne의 Meyers가 쓴 두 번째 책. 이것이 좋은 생각이라고 단호하게 주장하는 이유는 무엇입니까? –
글쎄, 나는 모든 마이어스 북 카를 읽었고 마지막 한 권을 제외하고는 모든 스트로스트 럽트를 읽었습니다. 생성자 catch 블록의 문제점은 아무 것도 유용하지 않다는 것입니다. C++에서는 어쨌든 try & catvch mutch를 사용하지 말아야합니다. 대신 RAII를 사용해야합니다. RAII는 Meyers & BS가 자신의 모든 책에서 광범위하게 토론하는 방식입니다. –
당신이 말한 것을 내가 맡을 것입니다. 이 책을 통해 페이지를 보내고 그들이 그 건설을 설명 할 시간이 없다. –