小编Dav*_*vid的帖子

单元测试其目的是副作用的函数

你会如何对do_int_to_string_conversion进行单元测试?

#include <string>
#include <iostream>

void do_int_to_string_conversion(int i, std::string& s) {
    switch(i) {
    case 1:
        s="1";
        break;
    case 2:
        s="2";
        break;
    default:
        s ="Nix";
    }
}

int main(int argc, char** argv){
    std::string little_s;

    do_int_to_string_conversion(1, little_s);
    do_int_to_string_conversion(2, little_s);
    do_int_to_string_conversion(3, little_s);

}
Run Code Online (Sandbox Code Playgroud)

c++ unit-testing

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

C++中类型强制的后续跟进,因为它可以通过类型转换来解释

这是我之前的问题的后续跟进.

考虑我用以下原型编写一个函数:

int a_function(Foo val);
Run Code Online (Sandbox Code Playgroud)

其中foo被认为是一个定义为unsigned int的类型.遗憾的是,由于缺乏文件,这是不可验证的.

所以,有人出现并使用a_function,但使用unsigned int作为参数调用它.

这个故事转了过来.Foo实际上是一个类,它可以在显式构造函数中将unsigned int作为unsigned int的单个参数.

对于编译器来说,通过对参数进行类型转换来呈现函数调用是一种标准且可靠的行为吗?即编译器应该识别不匹配并插入构造函数?或者我应该得到报告类型不匹配的编译时错误.

c++ type-coercion

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

从堆执行指令

我可以在堆上分配一个块,将其字节设置为对应于函数调用及其参数的值,然后使用函数调用和取消引用运算符来执行该序列吗?

c c++

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

关于C++中类型强制的一个简单问题

给定函数原型和类型定义:

int my_function(unsigned short x);
typedef unsigned short blatherskite;
Run Code Online (Sandbox Code Playgroud)

是否按标准定义了以下情况:

int main(int argc, char** argv) {
  int result;
  blatherskite b;

  b=3;
  result = my_function(b);
}
Run Code Online (Sandbox Code Playgroud)

我可以通过函数原型预测到类型强制吗?

c++ coercion

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

Java:转换为类型参数

我有以下两个类:

public class GenericNumberOperation {
    public GenericNumberOperation() {} 
    public <T extends Number> T getSomeValue (boolean tf) {
      T number;
      if(tf) {
          number = new Double(1.0);
      }
      else {
           number = new Integer(11);
      }
      return (T) number;
   }
}
Run Code Online (Sandbox Code Playgroud)

和:

public class GenericNumberTest {
    public GenericNumberTest() {}

    public static void main(String[] args) {
        GenericNumberOperation gno = new GenericNumberOperation();
        Double d = gno.getSomeValue(true);
        Integer i = gno.getSomeValue(false);
    }
 }
Run Code Online (Sandbox Code Playgroud)

当我进行测试时,一切都很笨拙.如果我将类型参数更改为:

public <T> T getSomeValue(boolean tf)
Run Code Online (Sandbox Code Playgroud)

编译器抱怨,报告:

错误:不兼容的类型整数不能转换为T number = new Integer(11); 其中T是类型变量T …

java generics

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

标签 统计

c++ ×4

c ×1

coercion ×1

generics ×1

java ×1

type-coercion ×1

unit-testing ×1