两者都有几乎相同的输入参数:
int _ftprintf( FILE *stream, const _tchar *format [, argument ]...)
int fprintf(FILE *stream, const char *format, ...)
Run Code Online (Sandbox Code Playgroud)
这两种格式参数有什么区别?我应该什么时候使用它们?
如果我没有为Base**指定显式强制转换,为什么会出现编译错误?
处理派生类时,我可以使用指针指针吗?
class Base { };
class Child : public Base { };
void SomeFunction(Base** ppoObj) {}
void SomeFunction(Base* poObj) {}
int main()
{
Child *c = new Child();
// This passed.
SomeFunction(c);
SomeFunction((Base**)&c);
// CompilationError
SomeFunction(&c);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我应该何时在类中的结构中定义成员,何时应该在嵌套类中定义成员?
例如:
class SkypeProtocol
{
public:
SkypeProtocol();
virtual ~SkypeProtocol(){}
private:
class SkypeProtocolDateTime
{
private:
UI32 uDate;
ERROR GetDateString(PUCHAR pcBuffer,PUI32 uBufLen);
};
};
Run Code Online (Sandbox Code Playgroud)
要么
class SkypeProtocol
{
private:
SkypeProtocol();
virtual ~SkypeProtocol(){}
typedef struct SkypeProtocolDateTime
{
private:
UI32 uDate;
ERROR GetDateString(PUCHAR pcBuffer,PUI32 uBufLen);
}SSKYPE_STRUCT;
};
Run Code Online (Sandbox Code Playgroud)