请C++高手来看看我的这串代码哪里运行出错 错误代码1了

请高手帮小弟我看下这段代码的有关问题该如何解决 - C++当前位置:& &&&请高手帮小弟我看下这段代码的有关问题该如何解决请高手帮小弟我看下这段代码的有关问题该如何解决&&网友分享于:&&浏览:5次请高手帮我看下这段代码的问题该怎么解决小弟最近在学graph,试写了一段代码,准备测试一下书上介绍的几种算法,谁知出师未捷身先死,创建的类居然没能通过编译。。。请高手帮我指点一下,并给出解决方案。以下是代码:
#ifndef&VERTEX_H
#define&VERTEX_H
#include&iostream&
template&class&T&
class&vertex
vertex(const&T&&s&=&T()):self(s),&parent(T()),&color('W'),&vtime(0),&ftime(0){};
void&setSelf(T&s)&{self&=&s;}
void&setParent(T&p)&{parent&=&p;}
void&setColor(char&c)&{color&=&c;}
void&setVtime(int&t)&{vtime&=&t;}
void&setFtime(int&t)&{ftime&=&t;}
T&getSelf()&{return&}&const
T&getParent()&{return&}&const
char&getColor()&{return&}&const
int&getVtime()&{return&}&const
int&getFtime()&{return&}&const
&&&&&&&&//错误提示在这里:
bool&operator&&&(const&vertex&T&&&v)&const&{return&(self&&&v.getSelf());
bool&operator&==&(const&vertex&T&&&v)&const&&{return&(self&==&v.getSelf());}
template&class&T&
std::ostream&&operator&&&&(std::ostream&&str,&vertex&T&&&v)
return&str&&&&v.getSelf();
graphTest.cpp
#include&iostream&
#include&set&
#include"vertex.h"
using&namespace&
int&main()
vertex&char&&v1&=&vertex&char&('C');
vertex&char&&v2&=&vertex&char&('B');
vertex&char&&v3&=&vertex&char&('A');
vertex&char&&v4&=&vertex&char&('c');
vertex&char&&v5&=&vertex&char&('b');
vertex&char&&v6&=&vertex&char&('a');
set&vertex&char&&&s1;
s1.insert(v1);
s1.insert(v2);
s1.insert(v3);
s1.insert(v4);
s1.insert(v5);
s1.insert(v6);
set&vertex&char&&::iterator&iter&=&s1.begin();
vertex&char&&v;
while&(iter&!=&s1.end())
cout&&&&v&&&&
错误提示内容:
vertex.h(21):&error&C2662:&'vertex&T&::getSelf'&:&cannot&convert&'this'&pointer&from&'const&vertex&T&'&to&'vertex&T&&&'
------解决方案--------------------
T&getSelf()const&{return&}&
T&getParent()&const&{return&}
char&getColor()const&{return&}
int&getVtime()const&{return&}&
int&getFtime()const&{return&}&
const&应该在“)”之后而不是在大括号之后------解决方案-------------------- 共&2&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有求个C++高手,给我改点代码~
跪谢了。有偿也可以!!
推荐到广播
13126 人聚集在这个小组
(成功勾引母猪)
第三方登录:> C++ DES 加密算法!小弟我在网上找了很多,但是都没有返回值得!哪位高手来帮帮小弟我修改一下代码呢
C++ DES 加密算法!小弟我在网上找了很多,但是都没有返回值得!哪位高手来帮帮小弟我修改一下代码呢
sunli1983 & &
发布时间: & &
浏览:4 & &
回复:0 & &
悬赏:0.0希赛币
C++ DES 加密算法!我在网上找了很多,但是都没有返回值得!谁来帮帮我修改一下代码呢? - C++ Builder / Windows SDK/API  C/C++ code  typedef
void Des_Bit2Byte(byte *, byte *); void Des_Byte2Bit(byte *, byte *); void Des_DesEncry(byte *, byte *); void Des_DesDecry(byte *, byte *); void Des_TransPose(byte *, byte *, int); void Des_Process(int, byte *, byte *, byte *, byte); void Des_Lshift(byte *, byte); void Des_Rshift(byte *, byte);
unsigned char Des_Table0[] = {
58,50,42,34,26,18,10, 2,60,52,44,36,28,20,12, 4,
62,54,46,38,30,22,14, 6,64,56,48,40,32,24,16, 8,
57,49,41,33,25,17, 9, 1,59,51,43,35,27,19,11, 3,
61,53,45,37,29,21,13, 5,63,55,47,39,31,23,15, 7}; unsigned char Des_Table1[] = {
57,49,41,33,25,17, 9, 1,58,50,42,34,26,18,10, 2,
59,51,43,35,27,19,11, 3,60,52,44,36,63,55,47,39,
31,23,15, 7,62,54,46,38,30,22,14, 6,61,53,45,37,
29,21,13, 5,28,20,12, 4}; unsigned char Des_Table2[] = {
14,17,11,24, 1, 5, 3,28,15, 6,21,10,23,19,12, 4,
26, 8,16, 7,27,20,13, 2,41,52,31,37,47,55,30,40,
51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32}; unsigned char Des_Table3[] = {
40, 8,48,16,56,24,64,32,39, 7,47,15,55,23,63,31,
38, 6,46,14,54,22,62,30,37, 5,45,13,53,21,61,29,
36, 4,44,12,52,20,60,28,35, 3,43,11,51,19,59,27,
34, 2,42,10,50,18,58,26,33, 1,41, 9,49,17,57,25}; unsigned char Des_Table4[] = {
32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9,10,11,
12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21,
22,23,24,25,24,25,26,27,28,29,28,29,30,31,32, 1}; unsigned char Des_Table5[] = {
1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1}; unsigned char Des_Table6[] = {
0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1}; unsigned char Des_Table7[] = {
16, 7,20,21,29,12,28,17, 1,15,23,26, 5,18,31,10,
2, 8,24,14,32,27, 3, 9,19,13,30, 6,22,11, 4,25}; unsigned char Des_Table8[][64] = {
{14, 4,13, 1, 2,15,11, 8, 3,10, 6,12, 5, 9, 0, 7,
0,15, 7, 4,14, 2,13, 1,10, 6,12,11, 9, 5, 3, 8,
4, 1,14, 8,13, 6, 2,11,15,12, 9, 7, 3,10, 5, 0,
15,12, 8, 2, 4, 9, 1, 7, 5,11, 3,14,10, 0, 6,13},
{15, 1, 8,14, 6,11, 3, 4, 9, 7, 2,13,12, 0, 5,10,
3,13, 4, 7,15, 2, 8,14,12, 0, 1,10, 6, 9,11, 5,
0,14, 7,11,10, 4,13, 1, 5, 8,12, 6, 9, 3, 2,15,
13, 8,10, 1, 3,15, 4, 2,11, 6, 7,12, 0, 5,14, 9},
{10, 0, 9,14, 6, 3,15, 5, 1,13,12, 7,11, 4, 2, 8,
13, 7, 0, 9, 3, 4, 6,10, 2, 8, 5,14,12,11,15, 1,
13, 6, 4, 9, 8,15, 3, 0,11, 1, 2,12, 5,10,14, 7,
1,10,13, 0, 6, 9, 8, 7, 4,15,14, 3,11, 5, 2,12},
{7,13,14, 3, 0, 6, 9,10, 1, 2, 8, 5,11,12, 4,15,
13, 8,11, 5, 6,15, 0, 3, 4, 7, 2,12, 1,10,14, 9,
10, 6, 9, 0,12,11, 7,13,15, 1, 3,14, 5, 2, 8, 4,
3,15, 0, 6,10, 1,13, 8, 9, 4, 5,11,12, 7, 2,14},
{2,12, 4, 1, 7,10,11, 6, 8, 5, 3,15,13, 0,14, 9,
14,11, 2,12, 4, 7,13, 1, 5, 0,15,10, 3, 9, 8, 6,
4, 2, 1,11,10,13, 7, 8,15, 9,12, 5, 6, 3, 0,14,
11, 8,12, 7, 1,14, 2,13, 6,15, 0, 9,10, 4, 5, 3},
{12, 1,10,15, 9, 2, 6, 8, 0,13, 3, 4,14, 7, 5,11,
10,15, 4, 2, 7,12, 9, 5, 6, 1,13,14, 0,11, 3, 8,
9,14,15, 5, 2, 8,12, 3, 7, 0, 4,10, 1,13,11, 6,
4, 3, 2,12, 9, 5,15,10,11,14, 1, 7, 6, 0, 8,13},
{4,11, 2,14,15, 0, 8,13, 3,12, 9, 7, 5,10, 6, 1,
13, 0,11, 7, 4, 9, 1,10,14, 3, 5,12, 2,15, 8, 6,
1, 4,11,13,12, 3, 7,14,10,15, 6, 8, 0, 5, 9, 2,
6,11,13, 8, 1, 4,10, 7, 9, 5, 0,15,14, 2, 3,12},
{13, 2, 8, 4, 6,15,11, 1,10, 9, 3,14, 5, 0,12, 7,
1,15,13, 8,10, 3, 7, 4,12, 5, 6,11, 0,14, 9, 2,
7,11, 4, 1, 9,12,14, 2, 0, 6,10,13,15, 3, 5, 8,
2, 1,14, 7, 4,10, 8,13,15,12, 9, 0, 3, 5, 6,11}};
/* 函数功能:根据指定的密钥进行加密,将密文填回原始的字符 传入参数:
data : 原始的字符
: 密钥 返回参数: */ void DES_Encode(unsigned char * data, unsigned char * key) { byte data_text[64], key_text[64];
Des_Bit2Byte(data, data_text);
Des_Bit2Byte(key, key_text);
Des_DesDecry(data_text, key_text);
Des_Byte2Bit(data_text, data); }
void DES_Encode(unsigned char * pdata,int length, unsigned char * key) {
for(id=0;id&length/8;id++)
DES_Encode(pdata+id*8,key); }
/* 函数功能:根据指定的密钥解密密文,将原始的字符填传回到密文对应的地址 传入参数:
data : 密文
: 密钥 返回参数: */ void DES_Decode(unsigned char * data, unsigned char * key) { byte data_text[64], key_text[64];
Des_Bit2Byte(data, data_text);
Des_Bit2Byte(key, key_text);
Des_DesEncry(data_text, key_text);
Des_Byte2Bit(data_text, data); }
void DES_Decode(unsigned char * pdata, int length,unsigned char * key) {
for(id=0;id&length/8;id++)
DES_Decode(pdata+8*id,key); }
void Des_Bit2Byte(byte *text1, byte *text2) { int
i_temp1, i_temp2; byte mask, c_temp1;
for (i_temp1 = 0; i_temp1 & 8; i_temp1++)
c_temp1 = text1[i_temp1];
mask = 0x80;
for (i_temp2 = 0; i_temp2 & 8; i_temp2++)
if (c_temp1 & mask)
text2[i_temp1 * 8 + i_temp2] = 1;
text2[i_temp1 * 8 + i_temp2] = 0;
mask &&= 1;
void Des_Byte2Bit(byte *text1, byte *text2) { int
i_temp1, i_temp2;
memset(text2, 0, 8);
for (i_temp1 = 0; i_temp1 & 8; i_temp1++)
mask = 0x80;
for (i_temp2 = 0; i_temp2 & 8; i_temp2++)
if (text1[i_temp1 * 8 + i_temp2])
text2[i_temp1] |=
mask &&= 1;
void Des_DesEncry(byte *text1, byte *key) { byte c_temp1[64], c_temp2[32]; int
i_temp1, i_temp2;
Des_TransPose(text1, Des_Table0, 64);
Des_TransPose(key, Des_Table1, 56);
for (i_temp1 = 0; i_temp1 & 16; i_temp1++)
memcpy(c_temp1, text1+32, 32);
Des_Process(i_temp1, key, c_temp1, c_temp2, 'L');
for (i_temp2 = 0; i_temp2 & 32; i_temp2++)
if (text1[i_temp2] == c_temp2[i_temp2])
c_temp1[i_temp2 + 32] = 0;
c_temp1[i_temp2 + 32] = 1;
memcpy(text1, c_temp1, 64);
memcpy(text1, c_temp1+32, 32);
memcpy(text1+32, c_temp1, 32);
Des_TransPose(text1, Des_Table3, 64); }
void Des_DesDecry(byte *text1, byte *key) { byte c_temp1[64], c_temp2[32]; int
i_temp1, i_temp2;
Des_TransPose(text1, Des_Table0, 64);
memcpy(c_temp2, text1+32, 32);
memcpy(text1+32, text1, 32);
memcpy(text1, c_temp2, 32);
Des_TransPose(key, Des_Table1, 56);
for (i_temp1 = 0; i_temp1 & 16; i_temp1++)
memcpy(c_temp1 + 32, text1, 32);
Des_Process(i_temp1, key, c_temp1 + 32, c_temp2, 'R');
for (i_temp2 = 0; i_temp2 & 32; i_temp2++)
if (text1[i_temp2 + 32] == c_temp2[i_temp2])
c_temp1[i_temp2] = 0;
c_temp1[i_temp2] = 1;
memcpy(text1, c_temp1, 64);
Des_TransPose(text1, Des_Table3, 64); }
void Des_TransPose(byte *text, byte *table, int index) { byte c_temp1[64]; int
memcpy(c_temp1, text, 64);
for (i_temp1 = 0; i_temp1 & i_temp1++)
text[i_temp1] = c_temp1[table[i_temp1] - 1]; }
void Des_Process(int i, byte *key, byte *R32, byte *PB, byte flag) { byte extr32[48], extkey[56], c_temp1; int
memcpy(extr32, R32, 32);
Des_TransPose(extr32, Des_Table4, 48);
if (toupper(flag) == 'L')
Des_Lshift(key, Des_Table5[i]);
Des_Rshift(key, Des_Table6[i]);
memcpy(extkey, key, 56);
Des_TransPose(extkey, Des_Table2, 48);
for (i_temp1 = 0; i_temp1 & 48; i_temp1++)
if (extr32[i_temp1] == extkey[i_temp1])
extr32[i_temp1] = 0;
extr32[i_temp1] = 1;
for (i_temp1 = 0; i_temp1 & 8; i_temp1++)
c_temp1 = (byte)(extr32[i_temp1 * 6] * 32 +
extr32[i_temp1 * 6 + 5] * 16 +
extr32[i_temp1 * 6 + 1] *
extr32[i_temp1 * 6 + 2] *
extr32[i_temp1 * 6 + 3] *
extr32[i_temp1 * 6 + 4]);
c_temp1 = Des_Table8[i_temp1][c_temp1];
if (c_temp1 &= 8)
PB[i_temp1 * 4] = 1;
c_temp1 = (byte)(c_temp1 - 8);
PB[i_temp1 * 4] = 0;
if (c_temp1 &= 4)
PB[i_temp1 * 4 + 1] = 1;
c_temp1 = (byte)(c_temp1 - 4);
PB[i_temp1 * 4 + 1] = 0;
if (c_temp1 &= 2)
PB[i_temp1 * 4 + 2] = 1;
c_temp1 = (byte)(c_temp1 - 2);
PB[i_temp1 * 4 + 2] = 0;
if (c_temp1 &= 1)
PB[i_temp1 * 4 + 3] = 1;
PB[i_temp1 * 4 + 3] = 0;
Des_TransPose(PB, Des_Table7, 32); }
void Des_Lshift(byte *key, byte cnt) { byte c_temp1, c_temp2; int
i_temp1,i_temp2;
for (i_temp2 = 0; i_temp2 & i_temp2++)
c_temp1 = key[0];
c_temp2 = key[28];
for (i_temp1 = 0; i_temp1 & 55; i_temp1++)
key[i_temp1] = key[i_temp1 + 1];
key[27] = c_temp1;
key[55] = c_temp2;
void Des_Rshift(byte *key, byte cnt) { byte c_temp1, c_temp2; int
i_temp1,i_temp2;
for (i_temp2 = 0; i_temp2 & i_temp2++)
c_temp1 = key[27];
c_temp2 = key[55];
for (i_temp1 = 55; i_temp1 &0; i_temp1--)
key[i_temp1] = key[i_temp1 - 1];
key[0] = c_temp1;
key[28] = c_temp2;
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&}

我要回帖

更多关于 看看高手怎么修电脑 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信