小编Bo *_*son的帖子

如何在函数中创建引用参数optional(可选缓冲区)

所以我正在创建一个检测两个精灵之间碰撞的函数,并希望添加两个缓冲区作为可选参数,以填充每个对象碰撞的边的角度.

但是这意味着两个buff参数必须是引用,并且无论何时调用函数都必须存在,并且我不知道有什么方法可以创建默认引用.我怎样才能做到这一点?

这是实际的功能:

bool CheckCollision(T* obj1, T* obj2, float& CollBuff1= new float, float& CollBuff2= new float);
Run Code Online (Sandbox Code Playgroud)

我尝试使用'new'进行默认设置,但它不起作用.

c++ default reference

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

编译器从哪里开始读取

这是一个小程序:

#include <iostream>
using namespace std;

int main() {
    f();
    system("pause");
}

void f() {
    static int x = 20 ;
    class tester {
    public :
        tester() {
            cout << x ;
        }
    } x1;
}
Run Code Online (Sandbox Code Playgroud)

我在这里得到的错误是:错误C3861:'f':找不到标识符

如果我将函数f置于main之上,我将获得所需的输出.

为什么会这样? 我被告知程序执行开始于main.据此,代码也应该在第一种情况下运行.

编译器如何开始阅读程序?

c++ visual-c++

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

在VC++中没有运行时检查的生成代码

如何在VC++ 2010 Express中生成纯代码(无运行时检查)?例如,我删除了缓冲区安全检查(设置编译opt/GS-),但在我的代码中,我再次看到了这些调用

call __security_init_cookie
...
call _RTC_CheckEsp
...
call _RTC_CheckEsp
...

如何删除这些电话?

c c++ compiler-construction visual-c++

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

访问另一个类中的全局指针

我已经在一个类中全局定义了一个列表作为指针:

class1.cpp

type list[1000];
type *p_list = list;
Run Code Online (Sandbox Code Playgroud)

现在我想使用这个列表并将一些值放入其中.这应该在方法中的另一个类中发生

class2.cpp

mousePressEvent_from_class_2()
{
    p_list[counter].x = pos().x(); 
}
Run Code Online (Sandbox Code Playgroud)

但编译器告诉我它不知道p_list.我怎么能改变呢?

c++ pointers global

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

printf函数的问题?

我写了以下程序

 #include <stdio.h>

 main()
 {
 int i = 2;
 float c = 4.5;
 printf("%d\n",c);
 printf("%f\n",i);
 return 0;
 }
Run Code Online (Sandbox Code Playgroud)

虽然我知道这是错误的做法,当我运行程序时,我得到了答案

0
4.500000
Run Code Online (Sandbox Code Playgroud)

但是当我用这种方式交换printf语句时

#include <stdio.h>

main()
{
int i = 2;
float c = 4.5;
printf("%f\n",i);
printf("%d\n",c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是

0.000000
0
Run Code Online (Sandbox Code Playgroud)

我无法理解发生了什么,任何人都会解释我.

c printf casting

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

C++到.NET:我需要帮助理解C++代码才能将其转换为.NET

C++代码是:

unsigned short* ui=(unsigned short*)&buf[110];
            CountDev=ui[0];
Run Code Online (Sandbox Code Playgroud)

buf byte[]和CountDev是unsigned int

(BCB6编译器x86)

我的尝试是:F#

...CountDev  = System.BitConverter.ToInt32( [| arrayRead.[110]; arrayRead.[111] |] , 0 )
Run Code Online (Sandbox Code Playgroud)

C#

...CountDev  = System.BitConverter.ToInt32( [arrayRead[110]; arrayRead[111]] , 0 )
Run Code Online (Sandbox Code Playgroud)

但严重的是我无法确定.检查我的尝试,告诉我,如果我做错了请.

.net c# c++ f#

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

new和delete char*导致异常

我有以下代码,但它会导致异常.如果没有itoa"游戏",我认为没有问题.TextOutA是因为我使用winapi.

char* p1 = new char[2];
itoa(10,p1,10);
TextOutA(hDC,5, currenty,p1,2);
delete[] p1;
Run Code Online (Sandbox Code Playgroud)

c++ winapi

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

在C#中使用继承

所以我刚接受了面试,他们给了我一份他们希望我事先处理的任务清单.我完成了除了一个以外的所有任务,并且想知道是否有人能够对这个问题有所了解.

问题就是这样的

  1. 创建一个名为Human的类,为类提供一个公共属性HairColor和一个公共方法Talk(),当调用它时,返回"我是一个人".
  2. 创建另一个名为child的类,它继承自Human并覆盖talk方法并返回"我是小孩".
  3. 创建一个覆盖谈话和输出"我是男性"的男女班级.和"我是女性."
  4. 更改子级和人类层次结构以适当地包括男性和女性并输出正确的字符串.

我完成了任务1-3,但是在问题4上被困了.我在过去的继承工作经历中并没有做太多的事情,这个问题对我来说似乎有点模糊.我向雇主解释了这一点,他们看起来还不错,但没有告诉我应该怎么做.它现在一直困扰着我,我想知道它是如何完成的.

.net c# inheritance hierarchy

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

运算符重载(*,+, - ,/,=)?

我试图在FLOAT课堂上重载(*,+, - ,/,=)opertors .我写了这堂课:

class FLOAT{
private:
float x;
public:
FLOAT(){    x=0.0;  }
void setFloat(float f)      {   x=f;    }
void operator+(FLOAT obj)   {x=x+obj.x; };
void operator-(FLOAT obj)   {x=x-obj.x; };
void operator*(FLOAT obj)   {x=x*obj.x; };
void operator/(FLOAT obj)   {x=x/obj.x; };
FLOAT& operator=(const FLOAT& obj)  {this->x=obj.x; return *this;   };
};
Run Code Online (Sandbox Code Playgroud)

我用它如下:

int main() {
FLOAT f,f2,f3;
f.setFloat(4);
f2.setFloat(5);

f3=f+f2;// here is the problem!
    system("pause");//to pause console screen
return 0;
}
Run Code Online (Sandbox Code Playgroud)

f3=f+f2似乎不对.我能做什么?

c++ operator-overloading

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

通过 PowerShell 脚本 (.ps1) 上的快捷方式传递参数

我正在尝试通过我需要的脚本上的快捷方式传递参数。所以我已经完成了我的快捷方式,并在“目标”字段中我写了我的参数“测试”(C:\Users\MBGR\Desktop\test2.ps1 Test)。

在我的脚本中,我有“$args[0]”来接收我的参数。当我通过从 Win7 执行(powershell.exe -noexit C:\users\MBGR\Desktop\test2.ps1 TEST)发送参数时,它运行良好。并且还通过CMD。

所以我的问题是为什么不能使用快捷方式?它与 VBS 配合得很好,是不是我缺少一些东西才能使它工作?

parameters powershell shortcut

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