小编Azh*_*bal的帖子

运算符在C++中重载为int + obj

我有以下课程: -

class myclass
{
    size_t st;

    myclass(size_t pst)
    {
        st=pst;
    }

    operator int()
    {
        return (int)st;
    }

    int operator+(int intojb)
    {
        return int(st) + intobj; 
    }

};
Run Code Online (Sandbox Code Playgroud)

只要我像这样使用它,这个工作正常: -

char* src="This is test string";
int i= myclass(strlen(src)) + 100;
Run Code Online (Sandbox Code Playgroud)

但我无法做到这一点: -

int i= 100+ myclass(strlen(src));
Run Code Online (Sandbox Code Playgroud)

任何想法,我怎么能实现这个?

c++ operator-overloading operators operator-keyword

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

C++:如何在没有舍入,截断或填充的情况下从Float转换为String?

我遇到了问题,无法解决问题.需要大师的帮助.以下是示例代码: -

float f=0.01f;
printf("%f",f);
Run Code Online (Sandbox Code Playgroud)

如果我们在调试期间检查变量中的值,则f包含'0.0099999998'值,printf的输出为0.010000.

一个.有没有办法可以强制编译器为float类型的变量赋值?

湾 我想将float转换为字符串/字符数组.怎么可能只将完全相同的值转换为字符串/字符数组.我想确保没有填充零,没有填充不需要的值,数字没有变化,如上例所示.

c++ floating-point

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

什么是C++中的32Bit和64Bit窗口中的兼容"int"类型?

C++中兼容的"int"数据类型是什么,它可以在32位上调整为4个字节,在64位窗口上调整为8个字节?

虽然INT_PTR工作正常,但它降低了可读性,并且它的描述告诉我们将它用于指针算术.

谢谢

c++ types 32bit-64bit

6
推荐指数
1
解决办法
490
查看次数

std :: map :: find(char*)在调试模式下无法在64位机器上运行

我正面临一个有趣的局面,并希望与所有人分享.当然,如果有人可以提供帮助,我将不胜感激!

#include "stdafx.h"
#include <map>

#define DEF_NAME1   "NAME1" 
#define DEF_NAME2   "NAME2" 
#define DEF_NAME3   "NAME3" 
#define DEF_NAME4   "NAME4" 

struct TInfo
{
    const char * TName;
    const char * TArray1[100];
    const char * TArray2[100];
};

typedef std::map<const char*, TInfo*> TInfoMap;
typedef std::pair<const char*,TInfo*> TInfoPair;

static TInfoMap tinfomap;

TInfo TInfoArray[] =
{
{DEF_NAME1,{""}, {""}},
{DEF_NAME2,{""}, {""}},
{DEF_NAME3,{""}, {""}},
{DEF_NAME4,{""}, {""}}
};

TInfoMap* GetTInfoMap()
{

for (int i = 0; i < 3 ; i++ )
    tinfomap.insert(TInfoPair(TInfoArray[i].TName,&TInfoArray[i]));

return &tinfomap;
}


int _tmain(int argc, _TCHAR* …
Run Code Online (Sandbox Code Playgroud)

c++ windows

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