注册 登录
编程论坛 C++教室

这么简单的问题我都不会啊?!............

lklqlk1991 发布于 2009-12-02 18:26, 906 次点击
小弟刚学C++,问一菜鸟级问题
/* Note:Your choice is C IDE */
#include<iostream>
using namespace std;
class lk
{
public:
lk(){i=13;c='A';cout<<"call lk"<<endl;}
~lk(){cout<<"~lk() call"<<endl;}
lk(lk&);
private:
int i;
char c;
};
lk::lk(lk&p)
{
i=p.i;
c=p.c;
cout<<"copy lk call"<<endl;
}
int main()
{
lk a;
a.i=10;
a.c='A';
lk b=a;
cout<<b.i<<b.c;
return 0;   
}

以上代码有问题,编译器的意思好象是在类LK中找不到i和c.哪里错了啊????
7 回复
#2
菜豆王子2009-12-02 19:03
你这代码也太狠了吧!我都看晕了……
#3
hoho5682009-12-02 19:08
private变量。。怎么能再main()里面直接用?

[ 本帖最后由 hoho568 于 2009-12-2 19:11 编辑 ]
#4
flyingcloude2009-12-02 19:12
LK类中的int i和char c都是private的,所以只有在类内部才能使用。
#5
lintaoyn2009-12-02 19:13
lk::lk(lk&p)
{
i=p.i;
c=p.c;
cout<<"copy lk call"<<endl;
}
a.i=10;
a.c='A';
注意下私有成员
#6
forclwy2009-12-02 19:16
private:
int i;
char c;
将变量i和c设为私有后,如果想得到该变量的值,要编写自己的getInt()和getChar()。改变它们的值要编写setInt(),函数大概名字可以凭你自己喜欢喽
#7
lklqlk19912009-12-02 19:45
啊?也就是说一个类中的私有变量只有通过类中的成员函数来进行改变和输出喽b.i和b::i这样的方式是不行的啊,是不是只能通过内部的成员函数来处理啊?
多谢各位大哥大姐,叔叔阿姨们。我是新手,多多指教,向各位学习!

[ 本帖最后由 lklqlk1991 于 2009-12-2 19:47 编辑 ]
#8
yangliangbin2010-01-01 23:54
四楼说得对
1