Python论坛  - 讨论区

标题:[python-chinese] 问一个c++函数对象的问题

2007年03月29日 星期四 23:19

a_passing_wish a_passing_wish在163.com
星期四 三月 29 23:19:51 HKT 2007

大家好,想问一个c++关于函数对象的问题。代码如下:
1 #include
2 #include
3 template
4 class display:public std::unary_function{
5 public:
6 display(std::string &ths;):type(ths){}
7 void operator()(typename T::value_type &ths;){
8 std::cout<<<c("this is a string");
18 c(b);
19 return 0;
20 }

结果编译器报错,如下:
display.cpp: In function ‘int main()’:
display.cpp:17: 错误: 对 ‘display, std::allocator > >::display(const char
[17])’ 的调用没有匹配的函数
display.cpp:6: 附注: 备选为: display::display(std::string&) [with T
= std::basic_string, std::allocator >]
display.cpp:4: 附注: display, std::allocator > >::display(const
display,
std::allocator > >&)
display.cpp:18: 错误: 对 ‘(display, std::allocator > >) (std::string&)’ 的调用
没有匹配
display.cpp:7: 附注: 备选为: void display::operator()(typename
T::value_type&) [with T = std::basic_string, std::allocator >]
谁能告诉我那里错了,我头都大了!!!!!


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月29日 星期四 23:30

3751 lwm3751在gmail.com
星期四 三月 29 23:30:43 HKT 2007

char*不能自动转换成std::strin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070329/fe87bebb/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 00:02

a_passing_wish a_passing_wish在163.com
星期五 三月 30 00:02:47 HKT 2007

3751 写道:
> char*不能自动转换成std::strin
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
那应该怎么办阿?


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 00:28

3751 lwm3751在gmail.com
星期五 三月 30 00:28:54 HKT 2007

displayc(string("this is a string"));
学C++不啃本厚书是不行的。
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070330/afb24b83/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 00:48

a_passing_wish a_passing_wish在163.com
星期五 三月 30 00:48:21 HKT 2007

3751 写道:
> displayc(string("this is a string"));
> 学C++不啃本厚书是不行的。
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
是阿,正在努力。不过我记得一个const char* 的指针是自动转换成字符传的阿。
string有一个构造函数不就是
string(const char *)吗。我照你说的改了一下,好象还不能行阿。要不你在你机
子上试一下吧,看看是不是我机子所装库的问题。谢谢了。


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 01:05

Han chunguang(韩春广) hanchunguang在gmail.com
星期五 三月 30 01:05:17 HKT 2007

ºÜÆæ¹Ö°¡£¬ÕâÀïÊÇpythonÂÛ̳£¬ÔõôÔÚÕâÀïÎÊC++¡£¡£

¿´À´Ä㻹²»´óÁ˽âÄ£°å¡£¡£¡£
¸øÄãд³öÀ´°É¡£¡£
template
class Display: public unary_function
{
public:
    Display(const T &tt;):type(tt)
    {
        //
    }

    void operator()(const T & tt)
    {
        cout<< tt <<a_passing_wish在163.com> wrote:
>
> ´ó¼ÒºÃ£¬ÏëÎÊÒ»¸öc++¹ØÓÚº¯Êý¶ÔÏóµÄÎÊÌâ¡£´úÂëÈçÏ£º
> 1 #include
> 2 #include
> 3 template
> 4 class display:public std::unary_function{
> 5 public:
> 6 display(std::string &ths;):type(ths){}
> 7 void operator()(typename T::value_type &ths;){
> 8 std::cout<<<> 9 }
> 10 private:
> 11 std::string type;
> 12 };
> 13 using namespace std;
> 14 int main(){
> 15
> 16 string b="what's the wrong?????????";
> 17 displayc("this is a string");
> 18 c(b);
> 19 return 0;
> 20 }
>
> ½á¹û±àÒëÆ÷±¨´í£¬ÈçÏ£º
> display.cpp: In function 'int main()':
> display.cpp:17: ´íÎó£º ¶Ô 'display> std::char_traits, std::allocator > >::display(const char
> [17])' µÄµ÷ÓÃûÓÐÆ¥ÅäµÄº¯Êý
> display.cpp:6: ¸½×¢£º ±¸Ñ¡Îª£º display::display(std::string&) [with T
> = std::basic_string, std::allocator >]
> display.cpp:4: ¸½×¢£º display> std::char_traits, std::allocator > >::display(const
> display,
> std::allocator > >&)
> display.cpp:18: ´íÎó£º ¶Ô '(display> std::char_traits, std::allocator > >) (std::string&)' µÄµ÷ÓÃ
> ûÓÐÆ¥Åä
> display.cpp:7: ¸½×¢£º ±¸Ñ¡Îª£º void display::operator()(typename
> T::value_type&) [with T = std::basic_string> std::char_traits, std::allocator >]
> Ë­ÄܸæËßÎÒÄÇÀï´íÁË£¬ÎÒÍ·¶¼´óÁË£¡£¡£¡£¡£¡
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 

Best Regards,

Hanchunguang
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070330/6906f650/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 09:42

jinq0123在163.com jinq0123在163.com
星期五 三月 30 09:42:26 HKT 2007

1. #include  这样才有 char * -> string
2. display(std::string &ths;) 最好加const
   display(const std::string &ths;)
3. 如果有1和2,c的构造就不必显示类型转换
4. operator()的参数是string::value_type,即char&, 不是string

a_passing_wish wrote:
> 大家好,想问一个c++关于函数对象的问题。代码如下:
> 1 #include
> 2 #include
> 3 template
> 4 class display:public std::unary_function{
> 5 public:
> 6 display(std::string &ths;):type(ths){}
> 7 void operator()(typename T::value_type &ths;){
> 8 std::cout<<<> 9 }
> 10 private:
> 11 std::string type;
> 12 };
> 13 using namespace std;
> 14 int main(){
> 15
> 16 string b="what's the wrong?????????";
> 17 displayc("this is a string");
> 18 c(b);
> 19 return 0;
> 20 }
>
> 结果编译器报错,如下:
> display.cpp: In function ‘int main()’:
> display.cpp:17: 错误: 对 ‘display> std::char_traits, std::allocator > >::display(const char
> [17])’ 的调用没有匹配的函数
> display.cpp:6: 附注: 备选为: display::display(std::string&) [with T
> = std::basic_string, std::allocator >]
> display.cpp:4: 附注: display> std::char_traits, std::allocator > >::display(const
> display,
> std::allocator > >&)
> display.cpp:18: 错误: 对 ‘(display> std::char_traits, std::allocator > >) (std::string&)’ 的调用
> 没有匹配
> display.cpp:7: 附注: 备选为: void display::operator()(typename
> T::value_type&) [with T = std::basic_string> std::char_traits, std::allocator >]
> 谁能告诉我那里错了,我头都大了!!!!!
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 09:42

迎风飘逸 pesoft在126.com
星期五 三月 30 09:42:30 HKT 2007

Python 邮件列表,你好 

#include
#include
template
class display:public std::unary_function
{
public:
 explicit display(const std::string &ths;):type(ths){}
 void operator()(T &ths;)
 {
  std::cout<<< c("this is a string");
 c(b);
 return 0;
}

你试试这样行不行。

  
迎风飘逸,pesoft at 126.com 
2007-03-30  
----- Original Message -----  
From:   a_passing_wish  
To:   list  
Sent:  2007-03-29, 23:19:51 
Subject:  [python-chinese] 问一个c++函数对象的问题 




>大家好,想问一个c++关于函数对象的问题。代码如下: 
>1 #include 
>2 #include 
>3 template 
>4 class display:public std::unary_function{ 
>5 public: 
>6 display(std::string &ths;):type(ths){} 
>7 void operator()(typename T::value_type &ths;){ 
>8 std::cout9 } 
>10 private: 
>11 std::string type; 
>12 }; 
>13 using namespace std; 
>14 int main(){ 
>15 
>16 string b="what's the wrong?????????"; 
>17 displayc("this is a string"); 
>18 c(b); 
>19 return 0; 
>20 } 
> 
>结果编译器报错,如下: 
>display.cpp: In function ‘int main()’: 
>display.cpp:17: 错误: 对 ‘display>std::char_traits, std::allocator > >::display(const char 
>[17])’ 的调用没有匹配的函数 
>display.cpp:6: 附注: 备选为: display::display(std::string&) [with T 
>= std::basic_string, std::allocator >] 
>display.cpp:4: 附注: display>std::char_traits, std::allocator > >::display(const 
>display, 
>std::allocator > >&) 
>display.cpp:18: 错误: 对 ‘(display>std::char_traits, std::allocator > >) (std::string&)’ 的调用 
>没有匹配 
>display.cpp:7: 附注: 备选为: void display::operator()(typename 
>T::value_type&) [with T = std::basic_string>std::char_traits, std::allocator >] 
>谁能告诉我那里错了,我头都大了!!!!! 
> 
>_______________________________________________ 
>python-chinese 
>Post: send python-chinese at lists.python.cn 
>Subscribe: send subscribe to python-chinese-request at lists.python.cn 
>Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn 
>Detail Info: http://python.cn/mailman/listinfo/python-chinese

__________________________________________________________
DreamMail - 享受好用的中文电子邮件客户端 www.dreammail.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070330/dedd105b/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 10:25

SpitFire spitfire2在gmail.com
星期五 三月 30 10:25:26 HKT 2007

1.ctorÓ¦¸ÃÊÇdisplay(std::string const& value),ÕâÑù¾ÍÄܽ«char arrayתΪһ¸östd::stringµÄÁÙʱ¶ÔÏó
2.std::string::value_typeΪchar£¬ÄãµÄoperator()²»ÖªÒª×öʲô




SpitFire
2007-03-30



·¢¼þÈË£º a_passing_wish
·¢ËÍʱ¼ä£º 2007-03-29 23:21:00
ÊÕ¼þÈË£º list
³­ËÍ£º 
Ö÷Ì⣺ [python-chinese]ÎÊÒ»¸öc++º¯Êý¶ÔÏóµÄÎÊÌâ

´ó¼ÒºÃ£¬ÏëÎÊÒ»¸öc++¹ØÓÚº¯Êý¶ÔÏóµÄÎÊÌâ¡£´úÂëÈçÏ£º
1 #include 
2 #include 
3 template 
4 class display:public std::unary_function {
5 public:
6 display(std::string &ths;):type(ths){}
7 void operator()(typename T::value_type &ths;){
8 std::cout < < < c("this is a string");
18 c(b);
19 return 0;
20 }

½á¹û±àÒëÆ÷±¨´í£¬ÈçÏ£º
display.cpp: In function ¡®int main()¡¯:
display.cpp:17: ´íÎó£º ¶Ô ¡®display , std::allocator   >  >::display(const char
[17])¡¯ µÄµ÷ÓÃûÓÐÆ¥ÅäµÄº¯Êý
display.cpp:6: ¸½×¢£º ±¸Ñ¡Îª£º display ::display(std::string&) [with T
= std::basic_string , std::allocator   >]
display.cpp:4: ¸½×¢£º display , std::allocator   >  >::display(const
display ,
std::allocator   >  >&)
display.cpp:18: ´íÎó£º ¶Ô ¡®(display , std::allocator   >  >) (std::string&)¡¯ µÄµ÷ÓÃ
ûÓÐÆ¥Åä
display.cpp:7: ¸½×¢£º ±¸Ñ¡Îª£º void display ::operator()(typename
T::value_type&) [with T = std::basic_string , std::allocator   >]
Ë­ÄܸæËßÎÒÄÇÀï´íÁË£¬ÎÒÍ·¶¼´óÁË£¡£¡£¡£¡£¡

_______________________________________________
python-chinese
Post: send python-chinese在lists.python.cn
Subscribe: send subscribe to python-chinese-request在lists.python.cn
Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070330/9cf383a9/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 12:50

a_passing_wish a_passing_wish在163.com
星期五 三月 30 12:50:59 HKT 2007

jinq0123在163.com 写道:
> 1. #include  这样才有 char * -> string
> 2. display(std::string &ths;) 最好加const
>    display(const std::string &ths;)
> 3. 如果有1和2,c的构造就不必显示类型转换
> 4. operator()的参数是string::value_type,即char&, 不是string
>
> a_passing_wish wrote:
>   
>> 大家好,想问一个c++关于函数对象的问题。代码如下:
>> 1 #include
>> 2 #include
>> 3 template
>> 4 class display:public std::unary_function{
>> 5 public:
>> 6 display(std::string &ths;):type(ths){}
>> 7 void operator()(typename T::value_type &ths;){
>> 8 std::cout<<<>> 9 }
>> 10 private:
>> 11 std::string type;
>> 12 };
>> 13 using namespace std;
>> 14 int main(){
>> 15
>> 16 string b="what's the wrong?????????";
>> 17 displayc("this is a string");
>> 18 c(b);
>> 19 return 0;
>> 20 }
>>
>> 结果编译器报错,如下:
>> display.cpp: In function ‘int main()’:
>> display.cpp:17: 错误: 对 ‘display>> std::char_traits, std::allocator > >::display(const char
>> [17])’ 的调用没有匹配的函数
>> display.cpp:6: 附注: 备选为: display::display(std::string&) [with T
>> = std::basic_string, std::allocator >]
>> display.cpp:4: 附注: display>> std::char_traits, std::allocator > >::display(const
>> display,
>> std::allocator > >&)
>> display.cpp:18: 错误: 对 ‘(display>> std::char_traits, std::allocator > >) (std::string&)’ 的调用
>> 没有匹配
>> display.cpp:7: 附注: 备选为: void display::operator()(typename
>> T::value_type&) [with T = std::basic_string>> std::char_traits, std::allocator >]
>> 谁能告诉我那里错了,我头都大了!!!!!
>>
>> _______________________________________________
>> python-chinese
>> Post: send python-chinese在lists.python.cn
>> Subscribe: send subscribe to python-chinese-request在lists.python.cn
>> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
>> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>>     
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
你好,首先要谢谢你,你提出的四条建议,前三条我记下了,对于最后一条我还有 
点小问题。现在我想让display()能够以string为参数,我应该怎么声明?如果 
把value_type去掉的话,好象还是通不过,恳请指教!


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 12:52

a_passing_wish a_passing_wish在163.com
星期五 三月 30 12:52:38 HKT 2007

SpitFire 写道:
> 1.ctor应该是display (std::string const& value),这样就能将char array转
> 为一个std::string的临时对象
> 2.std::string::value_type 为char,你的operator()不知要做什么
> ------------------------------------------------------------------------
> SpitFire
> 2007-03-30
> ------------------------------------------------------------------------
> *发件人:* a_passing_wish
> *发送时间:* 2007-03-29 23:21:00
> *收件人:* list
> *抄送:*
> *主题:* [python-chinese]问一个c++函数对象的问题
> 大家好,想问一个c++关于函数对象的问题。代码如下:
> 1 #include 
> 2 #include 
> 3 template 
> 4 class display:public std::unary_function {
> 5 public:
> 6 display(std::string &ths;):type(ths){}
> 7 void operator()(typename T::value_type &ths;){
> 8 std::cout < < < > 9 }
> 10 private:
> 11 std::string type;
> 12 };
> 13 using namespace std;
> 14 int main(){
> 15
> 16 string b="what's the wrong?????????";
> 17 display c("this is a string");
> 18 c(b);
> 19 return 0;
> 20 }
> 结果编译器报错,如下:
> display.cpp: In function ‘int main()’:
> display.cpp:17: 错误: 对 ‘display > std::char_traits , std::allocator  > >::display(const char
> [17])’ 的调用没有匹配的函数
> display.cpp:6: 附注: 备选为: display ::display(std::string&) [with T
> = std::basic_string , std::allocator
>  >]
> display.cpp:4: 附注: display > std::char_traits , std::allocator  > >::display(const
> display ,
> std::allocator  > >&)
> display.cpp:18: 错误: 对 ‘(display > std::char_traits , std::allocator  > >) (std::string&)’
> 的调用
> 没有匹配
> display.cpp:7: 附注: 备选为: void display ::operator()(typename
> T::value_type&) [with T = std::basic_string > std::char_traits , std::allocator  >]
> 谁能告诉我那里错了,我头都大了!!!!!
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
我想用string类型的作参数,那么我应该如何声明?谢谢。


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 13:13

a_passing_wish a_passing_wish在163.com
星期五 三月 30 13:13:00 HKT 2007

Han chunguang(韩春广) 写道:
> 很奇怪啊,这里是python论坛,怎么在这里问C++。。
>
> 看来你还不大了解模板。。。
> 给你写出来吧。。
> template
> class Display: public unary_function
> {
> public:
> Display(const T &tt;):type(tt)
> {
> //
> }
>
> void operator()(const T & tt)
> {
> cout<< tt <> }
>
> private:
> const T type;
> };
>
> ps:注意下代码风格,通常类名第一个字母等等。。
> 参数传递时,char *是可以自动转换成const string &类型。
> 详细研读下C++ prime 和The C++ Standard Library等
>
> On 3/29/07, *a_passing_wish* <a_passing_wish在163.com
> a_passing_wish在163.com>> wrote:
>
>     大家好,想问一个c++关于函数对象的问题。代码如下:
>     1 #include
>     2 #include
>     3 template
>     4 class display:public std::unary_function>     T::value_type,void>{
>     5 public:
>     6 display(std::string &ths;):type(ths){}
>     7 void operator()(typename T::value_type &ths;){
>     8 std::cout<<<>     9 }
>     10 private:
>     11 std::string type;
>     12 };
>     13 using namespace std;
>     14 int main(){
>     15
>     16 string b="what's the wrong?????????";
>     17 displayc("this is a string");
>     18 c(b);
>     19 return 0;
>     20 }
>
>     结果编译器报错,如下:
>     display.cpp: In function 'int main()':
>     display.cpp:17: 错误: 对 'display>     std::char_traits, std::allocator > >::display(const char
>     [17])' 的调用没有匹配的函数
>     display.cpp:6: 附注: 备选为: display::display(std::string&)
>     [with T
>     = std::basic_string,
>     std::allocator >]
>     display.cpp:4: 附注: display>     std::char_traits, std::allocator > >::display(const
>     display,
>     std::allocator > >&)
>     display.cpp:18: 错误: 对 '(display>     std::char_traits, std::allocator > >) (std::string&)'
>     的调用
>     没有匹配
>     display.cpp:7: 附注: 备选为: void display::operator()(typename
>     T::value_type&) [with T = std::basic_string>     std::char_traits, std::allocator >]
>     谁能告诉我那里错了,我头都大了!!!!!
>
>     _______________________________________________
>     python-chinese
>     Post: send python-chinese在lists.python.cn
>     python-chinese在lists.python.cn>
>     Subscribe: send subscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Unsubscribe: send unsubscribe to
>     python-chinese-request在lists.python.cn
>     python-chinese-request在lists.python.cn>
>     Detail Info: http://python.cn/mailman/listinfo/python-chinese
>     <http://python.cn/mailman/listinfo/python-chinese>
>
>
>
>
> -- 
>
> Best Regards,
>
> Hanchunguang
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
呵呵,因为我认为,学python的大部分都是c++的高手阿。别的地方我又找不到人
指点。只好。。。。。。。
primer上关于函数对象的内容我以前大致看过,不过没有动过手,现在动手的时候
才发现问题多多阿。还是python的好阿,这下谈到python了吧。嘿嘿。


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 13:17

jinq0123在163.com jinq0123在163.com
星期五 三月 30 13:17:51 HKT 2007

你要的可能是如下代码:

#include 
#include 
#include 

template
class display : public std::unary_function
{
public:
    display(const std::string &ths;) : type(ths) {}
   
    void operator()(const T &ths;)
    {
        std::cout << type << ths << std::endl;
    }
   
private:
    std::string type;
};

using namespace std;

int main()
{
    string b = "what's the wrong?????????";
    display c("this is a string");
    c(b);
    return 0;
}



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 13:31

a_passing_wish a_passing_wish在163.com
星期五 三月 30 13:31:20 HKT 2007

jinq0123在163.com 写道:
> 你要的可能是如下代码:
>
> #include 
> #include 
> #include 
>
> template
> class display : public std::unary_function
> {
> public:
>     display(const std::string &ths;) : type(ths) {}
>    
>     void operator()(const T &ths;)
>     {
>         std::cout << type << ths << std::endl;
>     }
>    
> private:
>     std::string type;
> };
>
> using namespace std;
>
> int main()
> {
>     string b = "what's the wrong?????????";
>     display c("this is a string");
>     c(b);
>     return 0;
> }
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
就是它了,谢谢了。


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年03月30日 星期五 13:35

SpitFire spitfire2在gmail.com
星期五 三月 30 13:35:58 HKT 2007

ÎÒ¾õµÃÄãÓ¦¸ÃÔÙ´ò´ò»ù´¡£¬template¼°STL¿âµÄ¸ß¼¶ÄÚÈÝ¿ÉÒÔÔٷźóһЩ




SpitFire
2007-03-30



·¢¼þÈË£º a_passing_wish
·¢ËÍʱ¼ä£º 2007-03-30 13:14:04
ÊÕ¼þÈË£º han.chunguang在gmail.com; python-chinese在lists.python.cn
³­ËÍ£º 
Ö÷Ì⣺ Re: [python-chinese]ÎÊÒ»¸öc++º¯Êý¶ÔÏóµÄÎÊÌâ

Han chunguang(º«´º¹ã) дµÀ:
> ºÜÆæ¹Ö°¡£¬ÕâÀïÊÇpythonÂÛ̳£¬ÔõôÔÚÕâÀïÎÊC++¡£¡£
>
> ¿´À´Ä㻹²»´óÁ˽âÄ£°å¡£¡£¡£
> ¸øÄãд³öÀ´°É¡£¡£
> template 
> class Display: public unary_function 
> {
> public:
> Display(const T &tt;):type(tt)
> {
> //
> }
>
> void operator()(const T & tt)
> {
> cout < < tt  < > }
>
> private:
> const T type;
> };
>
> ps£º×¢ÒâÏ´úÂë·ç¸ñ£¬Í¨³£ÀàÃûµÚÒ»¸ö×ÖĸµÈµÈ¡£¡£
> ²ÎÊý´«µÝʱ£¬char *ÊÇ¿ÉÒÔ×Ô¶¯×ª»»³Éconst string &ÀàÐÍ¡£
> ÏêϸÑжÁÏÂC++ prime ºÍThe C++ Standard LibraryµÈ
>
> On 3/29/07, *a_passing_wish*  <a_passing_wish在163.com
>  a_passing_wish在163.com > > wrote:
>
>     ´ó¼ÒºÃ£¬ÏëÎÊÒ»¸öc++¹ØÓÚº¯Êý¶ÔÏóµÄÎÊÌâ¡£´úÂëÈçÏ£º
>     1 #include 
>     2 #include 
>     3 template 
>     4 class display:public std::unary_function >     T::value_type,void >{
>     5 public:
>     6 display(std::string &ths;):type(ths){}
>     7 void operator()(typename T::value_type &ths;){
>     8 std::cout < < < >     9 }
>     10 private:
>     11 std::string type;
>     12 };
>     13 using namespace std;
>     14 int main(){
>     15
>     16 string b="what's the wrong?????????";
>     17 display c("this is a string");
>     18 c(b);
>     19 return 0;
>     20 }
>
>     ½á¹û±àÒëÆ÷±¨´í£¬ÈçÏ£º
>     display.cpp: In function 'int main()':
>     display.cpp:17: ´íÎó£º ¶Ô 'display >     std::char_traits , std::allocator   >  >::display(const char
>     [17])' µÄµ÷ÓÃûÓÐÆ¥ÅäµÄº¯Êý
>     display.cpp:6: ¸½×¢£º ±¸Ñ¡Îª£º display ::display(std::string&)
>     [with T
>     = std::basic_string ,
>     std::allocator   >]
>     display.cpp:4: ¸½×¢£º display >     std::char_traits , std::allocator   >  >::display(const
>     display ,
>     std::allocator   >  >&)
>     display.cpp:18: ´íÎó£º ¶Ô '(display >     std::char_traits , std::allocator   >  >) (std::string&)'
>     µÄµ÷ÓÃ
>     ûÓÐÆ¥Åä
>     display.cpp:7: ¸½×¢£º ±¸Ñ¡Îª£º void display ::operator()(typename
>     T::value_type&) [with T = std::basic_string >     std::char_traits , std::allocator   >]
>     Ë­ÄܸæËßÎÒÄÇÀï´íÁË£¬ÎÒÍ·¶¼´óÁË£¡£¡£¡£¡£¡
>
>     _______________________________________________
>     python-chinese
>     Post: send python-chinese在lists.python.cn
>      python-chinese在lists.python.cn >
>     Subscribe: send subscribe to
>     python-chinese-request在lists.python.cn
>      python-chinese-request在lists.python.cn >
>     Unsubscribe: send unsubscribe to
>     python-chinese-request在lists.python.cn
>      python-chinese-request在lists.python.cn >
>     Detail Info: http://python.cn/mailman/listinfo/python-chinese
>      <http://python.cn/mailman/listinfo/python-chinese >
>
>
>
>
> -- 
>
> Best Regards,
>
> Hanchunguang
> ------------------------------------------------------------------------
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
ºÇºÇ£¬ÒòΪÎÒÈÏΪ£¬Ñ§pythonµÄ´ó²¿·Ö¶¼ÊÇc++µÄ¸ßÊÖ°¢¡£±ðµÄµØ·½ÎÒÓÖÕÒ²»µ½ÈË
Ö¸µã¡£Ö»ºÃ¡£¡£¡£¡£¡£¡£¡£
primerÉϹØÓÚº¯Êý¶ÔÏóµÄÄÚÈÝÎÒÒÔÇ°´óÖ¿´¹ý£¬²»¹ýûÓж¯¹ýÊÖ£¬ÏÖÔÚ¶¯ÊÖµÄʱºò
²Å·¢ÏÖÎÊÌâ¶à¶à°¢¡£»¹ÊÇpythonµÄºÃ°¢£¬ÕâÏÂ̸µ½pythonÁË°É¡£ºÙºÙ¡£

_______________________________________________
python-chinese
Post: send python-chinese在lists.python.cn
Subscribe: send subscribe to python-chinese-request在lists.python.cn
Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070330/7d643993/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号