国外大学作业
如何把以下程序的template classes去掉,1.改成用generic classes编写的c++程序,2.改成用obstract classes编写的c++程序.// Generic Floyd-Warshall
// Demonstrates templates
#include <iostream.h>
template<class Value, Value initial,
Value (*plus)(Value,Value),
Value (*mult)(Value,Value)>
void floydWarshall(Value *v, int n) {
for(int k=0; k<n; k++)
v[n*k+k]=initial;
for(int k=0; k<n; k++)
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
v[n*i+j]=plus(v[n*i+j], mult(v[n*i+k],v[n*k+j]) );
}
bool plus (bool a, bool b) { return a || b; }
bool mult (bool a, bool b) { return a && b; }
int main(int argc, char **argv) {
int n;
cin >> n;
bool *test=new bool(n*n);
for(int i=0; i<n*n; i++)
cin >> test[i];
floydWarshall<bool,true,plus,mult>(test,n);
return 0;
}