我无法理解这段代码是如何工作的

时间:2017-04-19 04:02:46

标签: c++

这是我的头文件:

<root><accntNoGrp><accntNo>######</accntNo></accntNoGrp><accntNoGrp><accntNo>######</accntNo></accntNoGrp></root>

这是我的示例参考C ++源文件。

<?php
    $fnameErr = $lnameErr = $emailErr = "";
    $firstname = $lastname = $email = "";

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if (empty($_POST["firstname"])) {
            $fnameErr = "First name is required";
        }
    } // Add an ending brace

我正在学习模板,我无法理解我的代码如何与头文件一起工作。

我的意思是,即使头文件有一个减法函数,为什么这个结果不是-1还是0.5的减法?相反,我得到12和32.5? 如何将#pragma once template <typename T> T Sub(T a, T b) { return a - b; } 写入#include "NonrecursiveInorderTree.h" #include <iostream> using namespace std; template<typename T1, typename T2> void ShowData(T1 a, T2 b) { cout << a << ""; cout << b << endl; } int main(void) { ShowData(1, 2); ShowData(3, 2.5); return 0; }

3 个答案:

答案 0 :(得分:0)

您已实施Sub()功能,但未对其进行调用:

template<typename T1, typename T2>
void ShowData(T1 a, T2 b)
{
    // It's better to explicitly use std prefix
    std::cout << Sub<int>(a, b) << std::endl;
}
顺便说一下,结果将是:

-1
1

第二个结果不是0.5。因为2.5将自动转换为int(在调用Sub()时指定),浮点部分将丢失。

答案 1 :(得分:-1)

替换它:

thread1 = threading.Thread(target=remoteuser_stuckfreeze)
thread2 = threading.Thread(target=roottokillremoteuser)
thread1.start()
thread2.start()
thread1.join()
thread2.join()

有了这个

template<typename T1, typename T2>
void ShowData(T1 a, T2 b)
{
  cout << a << "";
  cout << b << endl;

}

假设template<typename T1, typename T2> void ShowData(T1 a, T2 b) { cout << Sub<T1>(a,b)<<endl; } 是头文件。

答案 2 :(得分:-2)

未调用

Sub,因为您未调用Sub。计算机完全按照你的要求去做。

如果您希望ShowData打印a减去b,请写下:

cout << Sub(a, b) << endl;

而不是:

cout << a << "";
cout << b << endl;