【发布时间】:2012-11-26 05:11:17
【问题描述】:
当我编译以下内容时,
#include#include #include 命名空间 ublas = boost::numeric::ublas; 模板 类向量 { 私人的: ublas::vector m_ublas_vec; 无符号 m_size; 民众: 向量(无符号){ m_size = s; m_ublas_vec.resize(m_size); } T &operator () (无符号 idx) { 如果(idx >= m_size){ perror("错误:索引超出范围!\n"); 退出(1); } 返回 m_ublas_vec(idx); } // 右乘标量。 模板 朋友 Vector 运算符 * (const Vector &, S); // 左乘标量。 模板 朋友 Vector 运算符 * (S, const Vector &); }; 模板 Vector Vector ::operator * (const Vector &v_in, S 标量){ 矢量 v_out (v_in.m_size); v_out.m_ublas_vec = v_in.m_ublas_vec*static_cast (标量); 返回 v_out; } 模板 Vector Vector ::operator * (S 标量, const Vector &v_in){ 矢量 v_out (v_in.m_size); v_out.m_ublas_vec = v_in.m_ublas_vec*static_cast (标量); 返回 v_out; }
我收到此错误:
vector_test.cpp:49:95: 错误:无效使用不完整类型'class Vector'
vector_test.cpp:7:26: 错误:'class Vector' 的声明
我做错了什么?
【问题讨论】:
标签: c++ class templates operator-overloading