小编Chr*_*erw的帖子

为什么默认情况下C++ bool var为true?

bool"bar"默认为true,但它应该为false,它不能在构造函数中初始化.有没有办法将它初始化为假而不使其静态?

简化版代码:

foo.h中

class Foo{
 public:
     void Foo();
private:
     bool bar;
}
Run Code Online (Sandbox Code Playgroud)

foo.c的

Foo::Foo()
{  
   if(bar)
   {
     doSomethink();
   }
}
Run Code Online (Sandbox Code Playgroud)

c++ static boolean default

17
推荐指数
2
解决办法
2万
查看次数

如何sprintf一个unsigned char?

这不起作用:

unsigned char foo;
foo = 0x123;

sprintf("the unsigned value is:%c",foo);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

无法将参数2从'unsigned char'转换为'char'

c++ printf unsigned-char

14
推荐指数
3
解决办法
7万
查看次数

为什么不能将TCHAR*转换为char*

错误C2664:'strcpy':无法将参数1从'TCHAR*'转换为'char*'代码:

LPCTSTR name, DWORD value
strcpy (&this->valueName[0], name);
Run Code Online (Sandbox Code Playgroud)

错误C2664:'strlen':无法将参数1从'LPCTSTR'转换为'const char*'

LPCTSTR name; 
strlen (name)     
Run Code Online (Sandbox Code Playgroud)

以上代码在另一个项目中工作正常的类,我找不到它在MS VS2010项目中不起作用的原因.

c++ visual-studio visual-studio-2010-beta-2

8
推荐指数
2
解决办法
3万
查看次数

为什么我不能使用getter访问public var?

有一个包含这些语句的文件:

public:
boost::shared_ptr<TBFControl::TbfCmdHandler> _tbfCmdHandlerPtr;
// will be private later...

boost::shared_ptr<TBFControl::TbfCmdHandler> getTBFCmdHandler()
{ return _tbfCmdHandlerPtr; }
Run Code Online (Sandbox Code Playgroud)

我可以这样使用它:

boost::shared_ptr<TBFControl::TbfCmdHandler>myTbfCmdHandlerPtr(
    this->getTBFInstallation()-> _tbfCmdHandlerPtr );
Run Code Online (Sandbox Code Playgroud)

但不是,就像我想要的那样:

boost::shared_ptr<TBFControl::TbfCmdHandler>myTbfCmdHandlerPtr(
    this->getTBFInstallation()->getTBFCmdHandler() );
Run Code Online (Sandbox Code Playgroud)

使用getter函数,会发生以下错误:

'Housekeeping :: TBFInstallation :: getTBFCmdHandler':无法将'this Housekeeping :: TBFInstallation'中的'this'指针转换为'Housekeeping :: TBFInstallation'

这里出了什么问题?

c++ boost shared-ptr

0
推荐指数
1
解决办法
165
查看次数