我是C++初学者,有人能解答一下关于多继承的问题吗

class A {
public:
void setA(int);
void showA() const;
private:
int a;
};
class B {
public:
void setB(int);
void showB() const;
private:
int b;
};
class C : public B, private A {
public:
void setC(int, int, int);
void showC() const;
private :
int c;
};
void A::setA(int x) {
a = x;
}
void B::setB(int x) {
b = x;
}
void C::setC(int x, int y, int z) {

setA(x);
setB(y);
c = z;

}
int main() {
C obj;
obj.setB(6);
obj.showB();
obj.setA(5);
obj.showA();
obj.setC(6, 7, 9);
obj.showC();

return 0;

}

严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0265 函数 "A::setA" (已声明 所在行数:22) 不可访问 尝试2 C:\Users\asus\Desktop\尝试2\尝试2\源.cpp 38

严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0265 函数 "A::showA" (已声明 所在行数:4) 不可访问 尝试2 C:\Users\asus\Desktop\尝试2\尝试2\源.cpp 39

请问为什么会报这个错误。而当我颠倒了C的继承顺序,先继承A再继承B,就会报B的错误,这是为什么,有人能详细地跟我解释一下吗,谢谢

1个回答

图片说明
C类的继承这里搞错啦,你应该重新看看关于继承限定符的使用。
举个栗子,
class C : private A {},这里,A的任何成员对于C类来说都是private的(不可访问的)
class C : public A {},这里, A的protected以及public类型成员对于C类都是public的(可访问的).
所以呀,在你的代码中,A的所有成员(包括成员变量以及成员函数)对于C类来说都是不可访问的。

qq_43209605
qq_43209605 我粗心了,多谢
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
我是C++初学者,有人能解答一下关于多继承的问题吗
class A { public: void setA(int); void showA() const; private: int a; }; class B { public: void setB(int); void showB() const; private: int b; }; class C : public B, private A { public: void setC(int, int, int); void showC() const; private : int c; }; void A::setA(int x) { a = x; } void B::setB(int x) { b = x; } void C::setC(int x, int y, int z) { setA(x); setB(y); c = z; } int main() { C obj; obj.setB(6); obj.showB(); obj.setA(5); obj.showA(); obj.setC(6, 7, 9); obj.showC(); return 0; } 严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E0265 函数 "A::setA" (已声明 所在行数:22) 不可访问 尝试2 C:\Users\asus\Desktop\尝试2\尝试2\源.cpp 38 严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E0265 函数 "A::showA" (已声明 所在行数:4) 不可访问 尝试2 C:\Users\asus\Desktop\尝试2\尝试2\源.cpp 39 请问为什么会报这个错误。而当我颠倒了C的继承顺序,先继承A再继承B,就会报B的错误,这是为什么,有人能详细地跟我解释一下吗,谢谢
DevC++初学者的两个问题
这是在项目里的程序 ![图片说明](https://img-ask.csdn.net/upload/202002/16/1581841318_653604.png) 这是不在项目里的程序![图片说明](https://img-ask.csdn.net/upload/202002/16/1581841394_74100.png) 不知道是怎么回事,网上查的答案有些不管用,有些看不懂,而且第二张图里运行的程序是我写的上一个程序,编译过了的!!! 本人自学C不到一个月,还请大佬回答的通俗些 不知道这个图有没有用,总之先给出来吧。
初学者想请教各位大佬一个关于继承的问题
关于c++ 里面的继承,我想请问一下各位大牛, public继承、private继承和protected继承的意义 (或者说是意思?),比如说public继承是只继承基类的public里面的函数成员吗 ?
一个C++的初学者问题,求解
问题:建立一个简单链表,输出各结点中的数据。 这是原程序:#include <iostream> #include <string> using namespace std; struct address { int n; string name; }; struct student { int num; float score; address dorm; struct student* next; }; int main() { student a, b, c, * head, * p; a.num = 31001; a.score = 89.5; a.dorm.n = 1; a.dorm.name = "25舍"; b.num = 31003; b.score = 90; b.dorm.n = 2; b.dorm.name = "26舍"; c.num = 31007; c.score = 85; c.dorm.n = 3; c.dorm.name = "27舍"; head = &a; a.next = &b; b.next = &c; c.next = NULL; p = head; do { cout << p->num << " " << p->score << " " << p->dorm.n << " " << p->dorm.name << endl; p = p->next; } while (p != NULL); return 0; } 重点:现在对此程序进行修改,将该程序用new运算符修改成能够按照输入的n值,动态生成和输入包含n个学生信息的链表(包含地址)。 其实n值可以事先在程序里定义好的,但是我用New运算符怎么都输出不了结果。请求大神能在上面程序的基础上做一些修改使其满足条件。谢谢!!
C++初学者,一个关于内存读取顺序的疑惑
各位大佬好,小弟现在有个问题,就是比如我开辟了一块连续的内存,占了4个字节,四个字节的物理地址由地位到高位分别是1,2,3,4,那么我想问:cpu读取这块连续内存的时候,一定是从1(低位地址)开始读吗?或者说也可能从4高位地址开始读? 说的通俗一点就是,cpu读取内存的时候,是从低位地址开始读,还是从高位开始读,或者说都有可能?
初学者关于 编程的一些问题
我是一个编程初学者,在学习c语言,请问c语言学到什么地步才算学好了,学完了c语言,是应该学习数据结构与算法,还是继续学习其他语言,比如c++,java
mapoutput.c:(.data+0x0): multiple definition of `p',这个问题怎么解决啊?
我这个蔡鸡初学者在尝试写一个推箱子的程序,但是今天编译的时候遇到了标题所显示的问题.了一下,是'p'这个指针被多次声明,但是我检查了很多遍(很有可能我太菜.......),应该不会有什么被多次声明什么的,但是它确实......,希望大家帮我康康(编译器用的是DEV c++) 附上代码 main,c ``` #include <stdio.h> #include "maps.h" #include "head.h" int main() { player.a=1; player.b=8; int x=0,y=0,level=114514,z=0; change:scanf_s("%d",&level); level--; system("cls"); while(z==0){ mapoutput(x,y,level,map); int mov; scanf_s("%d",&mov); move(mov,level,map,&player); system("cls"); z=judgement(level,map); if(z==1){ z=0; goto change; } } return 0; } ``` move.c(太多了,省略一些,如果需要的话我在发出来,实在不行我发源文件) ``` #include <stdio.h> #include "head.h" #include "maps.h" void move(int mov,int level,int map[2][6][10],struct post *p){ .............. } ``` judgement.c(同上) ``` #include <stdio.h> #include "head.h" #include "maps.h" int judgement(int level,int map[2][6][10]){ ........... return z; } ``` 然后是两个头文件 map.h ``` #ifndef LIST_HEAD2 #define LIST_HEAD2 int map[2][6][10]={ ........ }; #endif ``` head.h(感觉问题出在这里,但是....) ``` #ifndef LIST_HEAD1 #define LIST_HEAD1 struct post { int x; int y; }player; struct post *p=&player; void mapoutput(int x,int y,int level,int map[2][6][10]); void move(int mov,int level,int map[2][6][10],struct post *p); int judgement(int level,int map[2][6][10]); #endif ``` 然后是运行的报错 ![图片说明](https://img-ask.csdn.net/upload/202002/12/1581489321_528436.png) 希望大佬们能帮我看看问题出在哪里了 //救救孩子,秋梨膏
刚刚初学C# 这几个问题有人能帮我解决一下吗
输入一个正整数,将该数的各位左右反转输出,即输入123,输出321。(使用while循环实现)
0基础初学提问:请教在VS2019编C语言时警告提示的scanf参数问题?
![图片说明](https://img-ask.csdn.net/upload/202002/04/1580827147_188119.png) 想输入3个小写字母,输出其对应的3个大写字母 因为之前学习的时候老师用的是VC++,所以到了VS2019里不知道该怎么写正确 出现了超多很愚蠢的错误,百度了很多都没弄清楚(我太蠢了QAQ) 本人非计算机专业,才自学两天,望有好心人能出手相助,帮忙讲解一下警告中代码提示的意思TAT 跪谢Orz!!
刚刚初学C# 这几个问题有人能帮我解决一下吗 我想看看代码什么样子的
1.设半径r=1.5,圆柱高h=3,编写程序求园周长,圆面积,圆球表面积,圆球体积,圆柱体积.输出计算结果.圆周长:l=2*pi*r.圆面积:s=pi*r*r 球面积:s=4*pi*r*r 2.输入一个正整数,将该数的各位左右反转输出,即输入123,输出321。(使用while循环实现) 3.(如何在一行输出15个数并换行) 4.从键盘输入10个整型数据,输出10个数,并输出其平均值和最大值。 5.编写一个函数,求两数中的最小值,在主函数中输入这两个数,调用函数求出最小值,再求最小值的平方并输出 6.定义一个学生结构体,成员属性包含,姓名,性别和班级,使用结构体数组初始化3名学生,通过for循环输出学生全部信息.
MATLAB初学者在plot指令上出的一些问题,烦请知道的人解答
本人MATLAB小白一枚,最近在学习使用plot指令进行函数图像的绘制。 最近我写了一个可以通过输入设定绘出函数图像的plot指令,如下 x=input('请输入x的范围(格式为‘起点;点间距;终点)'); y=input('输入函数关系'); A=input('输入颜色,以及标记点形状'); B=input('线宽'); C=input('标识点边缘色'); D=input('标识点主色调'); E=input('标识点大小'); plot(x,y,'A','LineWidth',B,... 'MarkerEdgeColor','C',... 'MarkerEdgeColor','D',... 'MarkerSize',E) grid on xlabel('x'); ylabel('y'); 结果,在运行的过程中,A和C一旦运行,就必然出现 出错 A5 (line 8) plot(x,y,'--rs','LineWidth',B,... 其他的数据通过上述语法可以使用,只有A和C不行,这让我非常奇怪。 我无法解决,所以我只能来求助各位大佬
c++初学者一枚,希望有好心人能够帮我解答这行代码的意思
该题为c++ primer plus 书籍中 第七章课后习题 这个double * fill_array(double *pfirst, double *pend)函数体中, 最后的return 返回了一个 --ptemp; 为什么要反回这个,这个位置有点看不懂,反回--ptemp是反回的什么东西?指针地址的自减吗? 另外: if (!cin) // bad input { cin.clear(); while (cin.get() != '\n') continue; cout << "Bad input; input process terminated.\n"; if(i == 0) return ptemp; else return --ptemp; } 这里也有 return --ptemp; 希望能有朋友帮我解答疑惑,感激不尽,为何要反回这个呢! #include <iostream> const int Max = 5; // function prototypes double * fill_array(double *pfirst, double *pend); void show_array( double *pfirst, double *pend); void revalue(double *pfirst, double *pend, double r); int main() { using namespace std; double properties[Max]; double *pos = fill_array(properties, properties+(Max-1)); show_array(properties, properties+(Max-1)); cout << "Enter revaluation factor: "; double factor; cin >> factor; revalue(properties, properties+(Max-1), factor); show_array(properties, properties+(Max-1)); cout << "Done.\n"; return 0; } double * fill_array(double *pfirst, double *pend) { using namespace std; double temp; double * ptemp; int i = 0; for (ptemp = pfirst; ptemp <= pend; ptemp++) { cout << "Enter value #" << (i + 1) << ": "; cin >> temp; if (!cin) // bad input { cin.clear(); while (cin.get() != '\n') continue; cout << "Bad input; input process terminated.\n"; if(i == 0) return ptemp; else return --ptemp; } else if (temp < 0) // signal to terminate break; pfirst[i] = temp; i++; } return --ptemp; } // the following function can use, but not alter, // the array whose address is pfirst void show_array( double *pfirst, double *pend) { using namespace std; double * ptemp; int i = 0; for (ptemp = pfirst; ptemp <= pend; ptemp++,i++) { cout << "Property #" << (i + 1) << ": $"; cout << *ptemp << endl; } } // multiplies each element of ptemp by r void revalue(double *pfirst, double *pend, double r) { double *ptemp; for (ptemp = pfirst; ptemp <= pend; ptemp++) *ptemp *= r; }
初学c语言,可以评价一下我写的顺序表吗?
望各位批评指教,十分感谢。 ``` #include <stdio.h> #include <stdlib.h> #define INITSIZE 100 typedef struct { int * data; //声明一个动态数组 int length; //记录当前顺序表的长度(实际长度) int MaxSize; //顺序表的最大长度 }SqList; /* 初始化顺序表,调用InitList()函数可以创建一个空的顺序表 */ void InitList(SqList *L) { (*L).data = (int*)malloc(INITSIZE*sizeof(int)); //构造新的顺序表并为顺序表分配空间 (*L).length = 0; //空表的长度为0; (*L).MaxSize = INITSIZE; //空表的初始存储空间为INITSIZE } /* 输出打印顺序表 */ void PrintList(SqList *L) { for(int i=0;i<(*L).length;i++) { printf("%4d",(*L).data[i]); } printf("\n"); } /* 顺序表插入操作 将给定值e插入到顺序表的第i个位置 */ void InsertList(SqList *L,int e,int i) { //判断i的范围是否合法 if(i<1||i>(*L).MaxSize) { printf("插入位置有问题。\n"); return; } //判断顺序表是否已满 if((*L).length==(*L).MaxSize) { printf("顺序表已满,无法插入\n"); return; } //执行插入操作。将第i个位置及其后的元素后移 for(int j=(*L).length-1;j>=i;j++) { (*L).data[j+1] = (*L).data[j]; } //然后将待插入的元素放入第i个位置,由于数组下标是从0开始,所以第i的位置的元素下标应该是i-1 (*L).data[i-1] = e; //顺序表长度加一 (*L).length++; } /* 顺序表删除操作 删除顺序表上第i个位置上的元素 */ void DeleteList(SqList *L,int i) { //判断i的范围是否合法 if(i<1||i>(*L).MaxSize) { printf("删除位置有问题。\n"); return; } //将顺序表中第i个之后的元素前移,把第i的位置上原有的元素覆盖掉,实现删除 for(int j=i-1;j<(*L).length;j++) { (*L).data[j] = (*L).data[j+1]; } //顺序表长度加一 (*L).length--; } /* 顺序表查找操作 按位查找 查找顺序表上第i个位置上的元素 */ void SearchList_1(SqList (*L),int i) { //判断i的范围是否合法 if(i<1||i>(*L).length) { printf("查找的位置有问题。\n"); return; } printf("顺序表上第%d个元素为:%d\n",i,(*L).data[i-1]); } /* 顺序表查找操作 按值查找 查找给定值在顺序表中的位置 */ int SearchList_2(SqList *L,int e) { for(int i=0;i<(*L).length;i++) { if((*L).data[i]==e) return i+1; } printf("查找失败\n"); return -1; } /* 顺序表修改操作 修改顺序表第i个位置上的元素修改为新的值e */ void ChangeList(SqList *L,int i,int e) { //判断i的范围是否合法 if(i<1||i>(*L).length) { printf("需要修改的位置有问题。\n"); return; } (*L).data[i-1] = e; } /* 主函数 */ int main() { SqList *L; //初始化线性表 InitList(&L); //往顺序表中插入元素 InsertList(&L,12,1); InsertList(&L,24,2); InsertList(&L,38,3); InsertList(&L,45,4); InsertList(&L,52,5); InsertList(&L,69,6); InsertList(&L,73,7); //输出打印顺序表中所有元素 printf("原顺序表:"); PrintList(&L); //查找 printf("查找顺序表中第3个元素:");SearchList_1(&L,3); printf("69是顺序表中第%d个元素\n",SearchList_2(&L,69)); //删除线性表中元素 printf("删除第二个元素\n"); DeleteList(&L,2); printf("删除之后的顺序表:"); PrintList(&L); //修改顺序表的元素 printf("将顺序表中第3个元素修改为100\n"); ChangeList(&L,3,100); printf("一顿操作之后的顺序表:"); PrintList(&L); return 0; } ```
有人帮看一下吗,为什么这边请求不到数据,是读取的代码不能写在run里面吗,初学者,轻喷,谁能解决,给80个币
我这边只有客户端代码,请求服务端, 服务端返回结构如下,已经能够发送, 最主要问题是打日志, 但是接收不了返回,返回结构如图: ![图片说明](https://img-ask.csdn.net/upload/201912/13/1576218172_423143.png) ``` import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Client extends Thread { Socket socket = null; public String result = ""; public String realString = ""; public BufferedReader RD = null; InputStream inputRealStream = null; // public static String in = "1003200172{\"trxZone\":\"00502\",\"programName\":\"e\",\"id\":\"abcd1234\",\"img1\":\"jhskagkfhdsklgjhaglhlkjdghlksdhflsdhfihoefrgih\",\"imgFace1\":\"50,60,100,120\",\"hack1\":1,\"customerAgreement\":1}"; public String in = ""; public Client(String host, int port, String in) { try { in = new String(in.getBytes(),"GBK"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.in = in; try { socket = new Socket(host, port); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } // public void shutDown() throws IOException { // if (socket != null) { // synchronized (socket) { // socket.close(); // } // } // System.out.println("StopClose.shutDown() complete"); // } @Override public void run() { new sendMessThread().start(); super.run(); try { InputStream s = socket.getInputStream(); byte[] buf = new byte[1024]; int len = 0; while ((len = s.read(buf)) != -1) { System.out.println(new String(buf, 0, len)); } } catch (IOException e) { e.printStackTrace(); } } class sendMessThread extends Thread{ @Override public void run() { super.run(); Scanner scanner=null; OutputStream os= null; try { scanner=new Scanner(System.in); os= socket.getOutputStream(); // String in; // do { // in=scanner.next(); // os.write((""+in).getBytes()); // os.flush(); // } while (!in.equals("bye")); for(int i =0;i<1;i++) { os.write((""+in).getBytes()); os.flush(); } BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream(),"GBK")); String str = ""; InputStream inputStream = socket.getInputStream(); System.out.println("RESULT AS FOLLOWING:"); String realStr = ""; while ((str = rd.readLine()) != null) { System.out.println(str); realStr = realStr + str; } setRealString(realStr); setRD(rd); // 4、关闭资源 rd.close(); os.close(); socket.close(); // str = rd.readLine(); Client.this.result = str; System.out.println("Client.this.result:"+Client.this.result); rd.close(); } catch (IOException e) { e.printStackTrace(); } scanner.close(); try { os.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { // Client clientTest=new Client("88.6.13.66", 13000); // Client clientTest=new Client("127.0.0.1", 1234,""); // clientTest.start(); } public String getRealString() { return realString; } public void setRealString(String realString) { this.realString = realString; } public BufferedReader getRD() { return RD; } public void setRD(BufferedReader rD) { RD = rD; } public InputStream getInputRealStream() { return inputRealStream; } public void setInputRealStream(InputStream inputRealStream) { this.inputRealStream = inputRealStream; } } ``` 日志打出如下,为什么收不到值? ![图片说明](https://img-ask.csdn.net/upload/201912/13/1576218520_357171.png)
初学者学C语言看书遇到的问题
if(c>='Z'&&c<='Z'+4||c>'z') //书上写的是用这句话判断c是否是26个字母的后4个之一 想请大家讲解一下,初学者,着实没看懂,为什么不写成 if((c>='W'&&'c'<='Z')||(c>='w'&&'c'<='z'))
MySQL初学者报出1265错误代码求助大神
```sql SELECT DATABASE(); CREATE TABLE employe(id INT ,NAME VARCHAR(20) NOT NULL); #在创建表的时候就进行约束 SELECT *FROM employe; INSERT INTO employe(id,NAME)VALUE(33,NULL); INSERT INTO employe(id,NAME)VALUE(33,"liuzeyu"); ALTER TABLE employe MODIFY NAME VARCHAR(20) ; #修改为name值可为null ``` ```sql ALTER TABLE employe MODIFY NAME VARCHAR(20) NOT NULL; #创建表之后修改为name值可为not null ``` 此时会出现一个错误: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200111182447427.png) 这个问题待解决请指教。 最后是通过度娘解决了这个问题: ```sql UPDATE employe SET NAME=0 WHERE NAME IS NULL; ``` 然后就可以创建表之后修改为name值可为not null,至于为什么将空值替换成0作为初学者表示没看懂。 而且我操作完这一条语句后,创建其它的表执行类似上述的操作再也没遇到1265错误代码了,为什么呢?
c#的一个问题 我是初学者
各位大神,因为电脑没网,就用手机问一下问题, 我新建一个c#项目后,又重新建了一个useretrun的cs文件,为什么调试的时候是原来cs文件的结果,一个项目只能有一个''Main入口吗?
初学者 先学的C#。可是看到好多代码什么的都是用c,不知道是否需要先学c
非计算机专业,自学编程,因为本专业涉及到了一点C#,所以先学的C#,看到好多竞赛 或者是代码用的都是C,好多对于初学者的建议也是先学C 、C++等,不知道是否需要 先学C。。。。
初学java,写了个求质数的一个文件,请大佬帮我看下对不对
想表达的是输入一个数字,看这个数字是不是质数,并输出相应结果。 另外还想问一下有没有更加简便的方法 ``` Scanner sc = new Scanner(System.in); int num = sc.nextInt(); if(num==1) { System.out.println("这不是质数"); return; } for(int i = 2;i <= num;i++) { if(num%i==0&&num!=i) { System.out.println("这不是质数"); break; } if(num==i){ System.out.println("这是质数"); } } ```
初学 matplotlib 遇到的问题
数据文件: ![图片说明](https://img-ask.csdn.net/upload/202001/17/1579198315_723093.png) 代码: ![图片说明](https://img-ask.csdn.net/upload/202001/17/1579198352_65076.png) 运行结果 ![图片说明](https://img-ask.csdn.net/upload/202001/17/1579198286_551867.png) 数据文件中应该是整个 7 月的日期, 但是运行结果中却少了很多天,并且还多出了一个 8 月, 让我很奇怪。 我在代码中用 print 打印测试时发现能打印出每一天出来,但可视化时就出现了天数步齐的情况。
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
MyBatis研习录(01)——MyBatis概述与入门
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis原本是apache的一个开源项目iBatis, 2010年该项目由apache software foundation 迁移到了google code并改名为MyBatis 。2013年11月MyBatis又迁移到Github。
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
Python爬虫精简步骤1 获取数据
爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据。 爬虫能做很多事,能做商业分析,也能做生活助手,比如:分析北京近两年二手房成交均价是多少?广州的Python工程师平均薪资是多少?北京哪家餐厅粤菜最好吃?等等。 这是个人利用爬虫所做到的事情,而公司,同样可以利用爬虫来实现巨大的商业价值。比如你所熟悉的搜索引擎——百度和谷歌,它们的核心技术之一也是爬虫,而且是超级爬虫。 从搜索巨头到人工...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
web前端javascript+jquery知识点总结
1.Javascript 语法.用途 javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
渗透测试-灰鸽子远控木马
木马概述 灰鸽子( Huigezi),原本该软件适用于公司和家庭管理,其功能十分强大,不但能监视摄像头、键盘记录、监控桌面、文件操作等。还提供了黑客专用功能,如:伪装系统图标、随意更换启动项名称和表述、随意更换端口、运行后自删除、毫无提示安装等,并采用反弹链接这种缺陷设计,使得使用者拥有最高权限,一经破解即无法控制。最终导致被黑客恶意使用。原作者的灰鸽子被定义为是一款集多种控制方式于一体的木马程序...
Python:爬取疫情每日数据
前言 目前每天各大平台,如腾讯、今日头条都会更新疫情每日数据,他们的数据源都是一样的,主要都是通过各地的卫健委官网通报。 以全国、湖北和上海为例,分别为以下三个网站: 国家卫健委官网:http://www.nhc.gov.cn/xcs/yqtb/list_gzbd.shtml 湖北卫健委官网:http://wjw.hubei.gov.cn/bmdt/ztzl/fkxxgzbdgrfyyq/xxfb...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名...
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允许使用这...
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧???? 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升自...
粒子群算法求解物流配送路线问题(python)
1.Matlab实现粒子群算法的程序代码:https://www.cnblogs.com/kexinxin/p/9858664.html matlab代码求解函数最优值:https://blog.csdn.net/zyqblog/article/details/80829043 讲解通俗易懂,有数学实例的博文:https://blog.csdn.net/daaikuaichuan/article/...
教你如何编写第一个简单的爬虫
很多人知道爬虫,也很想利用爬虫去爬取自己想要的数据,那么爬虫到底怎么用呢?今天就教大家编写一个简单的爬虫。 下面以爬取笔者的个人博客网站为例获取第一篇文章的标题名称,教大家学会一个简单的爬虫。 第一步:获取页面 #!/usr/bin/python # coding: utf-8 import requests #引入包requests link = "http://www.santostang....
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
相关热词 c#导入fbx c#中屏蔽键盘某个键 c#正态概率密度 c#和数据库登陆界面设计 c# 高斯消去法 c# codedom c#读取cad文件文本 c# 控制全局鼠标移动 c# temp 目录 bytes初始化 c#
立即提问