简单的c++设计模式和结构问题
现在有一段代码是这样的
class A
{
int var_int;
string var_string;
void core(string input);
void core(int i);
void test_1()
{
//..........
core(var_int)
//..........
}
void test_2()
{
//..........same as test_1()
core(var_string)
//..........same as test_1()
}
}
class A
{
public:
A ()
{
var_int = 2;
var_string = "1234";
}
int& GetInt()
{
return var_int;
}
string& GetString()
{
return var_string;
}
template <class T>
void test(T& var)
{
// code 1
core(var);
// code 2
}
private:
int var_int;
string var_string;
void core(string input)
{
printf("%s\n", input.c_str());
}
void core(int i)
{
printf("%d\n", i);
}
};
A a;
a.test(a.GetInt());
a.test(a.GetString());
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stdlib.h>
#include<iostream>
using namespace std;
class A
{
public:
void core(int a)
{
cout<<"1"<<endl;
}
void core(string a)
{
cout<<"2"<<endl;
}
template <class T>
void test_1(T var) {core(var); }
} b;
int main()
{
b.test_1<int>(1);
b.test_1<string>("1");
return 0;
}