c++ class重载比较运算符的写法

本地能编译通过,但是在一个脑残oj上RE了。。不知道是不是哪里写的不规范

/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h: In function ‘const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&) [with _Tp = S]’:
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:2642:   instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = S*, _Size = int]’
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:2713:   instantiated from ‘void std::sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = S*]’
/main.cxx:34:   instantiated from here
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:91: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:92: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:94: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:98: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:100: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers

以上是错误提示。。

class S{
    public:
        int l,r;
        S* nxt;
        S(int x,int y){
            l=x;
            r=y;
            nxt=NULL;
        }
        S(){
            l=0; r=0; nxt=NULL;
        }
        int con(){
            if(nxt->l<=r) return 1;
            else return 0;
        }
        bool operator <(const S& next){
            if(l<next.l) return 1;
            else return 0;
        }
};

后面用到了sort

    sort(seg+1,seg+n+1);
c++

2个回答

把operator <的参数中的const去掉,有可能是常引用的问题

bool operator <(const S& next) const{
if(l<next.l) return 1;
else return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c++ class重载比较运算符的写法

本地能编译通过,但是在一个脑残oj上RE了。。不知道是不是哪里写的不规范 ``` /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h: In function ‘const _Tp& std::__median(const _Tp&, const _Tp&, const _Tp&) [with _Tp = S]’: /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:2642: instantiated from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = S*, _Size = int]’ /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:2713: instantiated from ‘void std::sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = S*]’ /main.cxx:34: instantiated from here /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:91: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:92: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:94: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:98: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:100: error: passing ‘const S’ as ‘this’ argument of ‘bool S::operator<(const S&)’ discards qualifiers ``` 以上是错误提示。。 ```c++ class S{ public: int l,r; S* nxt; S(int x,int y){ l=x; r=y; nxt=NULL; } S(){ l=0; r=0; nxt=NULL; } int con(){ if(nxt->l<=r) return 1; else return 0; } bool operator <(const S& next){ if(l<next.l) return 1; else return 0; } }; ``` 后面用到了sort ```c++ sort(seg+1,seg+n+1); ```

operator new是普通函数还是重载new运算符的函数

1、如果operator new是重载new运算符,那为什么new关键字可以正常使用,如 class A{}; A *p = new A; //为何不是调用operator new函数而是new关键字,我试过重载函数void *operator new(A)但是函数编译会报错,提示第一个参数要是size_t类型 还有int *p=(int *)new(sizeof(int));同样会报错 2、如果operator new只是单纯的是一个库函数而不是重载,那为什么该函数名中 间可以用空格

C++重载运算符加减乘除。

C++如何用class重载+号实现(a,b)+(c,d)=(a+c,b+d)。

c++运算符重载即++运算符重载的问题

``` class Triangular_iterator { public: Triangular_iterator( int index ) : _index( index-1 ){} //*** bool operator==( const Triangular_iterator& ) const; bool operator!=( const Triangular_iterator& ) const; int operator*() const; Triangular_iterator& operator++(); // prefix version Triangular_iterator operator++( int ); // postfix version private: void check_integrity() const; int _index; }; operator++() //前置版本 { // prefix instance ++_index; check_integrity(); return *this; } inline Triangular_iterator Triangular_iterator:: operator++( int ) //后置版本 { // postfix instance Triangular_iterator tmp = *this; ++_index; check_integrity(); return tmp; } ``` 我的问题: 1.后置版本的++运算为什么要返回一个临时对象? 2.后置版本是否是新建了一个Triangular_iterator并将运算符的调用对象复制,那么为什么没有重载=运算符就能运算成功? 3.后置版本中的++_index到底是哪个对象的_index,是tmp的还是this的,最后返回的临时对象中的_index+1了吗?

c++重载二维数组运算符,即两个括号

小弟不才,今天上午才明白重载[]的一维用法,但又卡在了二维数组时的重载 我的思路就是 在该类中, class array(int a,int b){*p=new int[a*b];} int & operator [] (int n) {return 这里不知道该怎么搞,这个二维数组当一维数组处理的指针,两次调用的处理方法好像不一样,也无法进行条件判断} private: int **p; 这里就尴尬了,*p是指向指针p的指针,p是指向动态内存首地址的指针。说实话我个人不太理解这种写法,混在一起难理解,又搅不清。这是我网上搜到的思路,个人理解能力有限,希望大神们指点指点。 这里就是想问下,重载二维数组的下标运算符,有什么思路没,初学者能理解的那种…,顺便问下重载圆括号函数调用运算符的思路,圆括号的重载目前完全没思路。如果有大神愿意贴出部分关键源代码,在此再次感谢了

C++重载赋值运算符中那个if(pname!=0)是什么意思,还有size有什么用

重载赋值运算符代码求解释,看不懂,为什么要用两个复制构造函数,为什么一定要加const???

C++重载的运算符不能一起调用吗

#include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; class Counter{ private: int count; public: Counter(int i=0):count(i){} Counter operator +(Counter&c)const{return Counter(count+c.count);} Counter operator -(Counter&c)const{return Counter(count-c.count);} Counter operator ++(){return Counter(++count);} Counter operator ++(int){Counter c(*this);++(*this);return c;} friend ostream&operator <<(ostream&out,Counter&c); }; int main(int argc, char** argv) { Counter c1(1),c2(2),c3(3),temp; cout<<c1<<endl; temp=(c1+c2); cout<<temp<<endl; temp=(c3-c1); cout<<temp<<endl; temp=(c3++)+c3+c3; cout<<(c3++)<<endl;//重载了<<和++,这里为什么不能直接调用呢 cout<<c3<<endl; temp=(++c1); cout<<temp<<endl; return 0; } ostream&operator <<(ostream&out,Counter&c){ out<<"The value of the counter:"<<c.count; return out; };

C++运算符重载的问题...

``` class Integer { private: int data; public: Integer(int a):data(a){} Integer operator-(Integer &another) { Integer tmp(0); tmp.data= this->data-another.data; return tmp; } void show() { cout<<data<<endl; } }; ``` tmp= this->data-another.data;这样不写成tmp.data编译器也没报错,执行结果也正确,C++是会自动匹配吗

运算符重载的UML图怎么画 帮忙画一下 感谢

#include <iostream.h> class Complex //复数类 { double real; double image ; public : Complex (double x=0.0,double y=0.0) { real=x; image=y; } ~Complex() // 析构函数 { cout<<"("<<real<<","<<image<<")被析构"<<endl; } Complex (const Complex &com1);//拷贝构造函数 void print (); friend Complex operator +(const Complex &c1,const Complex &c2); //声明友元函数 friend Complex operator -(const Complex &c1,const Complex &c2); friend Complex operator *(const Complex &c1,const Complex &c2); friend Complex operator /(const Complex &c1,const Complex &c2); friend Complex operator -(const Complex &c1); //数值取反 friend ostream &operator<<( ostream &os,const Complex &c1); //重载运算符<< }; Complex::Complex (const Complex &com1) //定义拷贝构造函数 { real=com1.real ;image=com1.image ; cout<<"Copy"<<endl; } Complex fun (Complex com2) { Complex com3(com2); return com3; } void Complex ::print () //输出函数 { if (!real) { cout<<image<<"i"<<endl; } else { if (image<0) cout<<real<<image<<"i"<<endl; else cout<<real<<"+"<<image<<"i"<<endl; } } Complex operator +(const Complex &c1,const Complex &c2) //定义友元函数 加法 { Complex temp(c1.real +c2.real ,c1.image +c2.image ); return temp; } Complex operator -(const Complex &c1,const Complex &c2) //减法 { Complex temp(c1.real -c2.real ,c1.image -c2.image ); return temp; } Complex operator *(const Complex &c1,const Complex &c2) //乘法 { Complex temp (c1.real *c2.real -c1.image *c2.image,c1.real *c2.image+c1.image *c2.real); return temp; } Complex operator /(const Complex &c1,const Complex &c2) //除法 { Complex temp ((c1.real *c2.real +c1.image *c2.image)/(c2.real *c2.real+c2.image+c2.image),(c1.real *c2.image-c1.image *c2.real)/(c2.real *c2.real+c2.image+c2.image)); return temp; } Complex operator -(const Complex &c1) //取反 { Complex temp(-c1.real ,-c1.image ); return temp; } ostream &operator<<( ostream &cout,const Complex &c1) //重载<<运算符 { cout<<"("<<c1.real <<","<<c1.image <<")"<<endl; return cout; } int main() { Complex c1(1,1),c2(2,2),c3,c4,c5,c6,c7,co1; c3=c1+c2; c3.print (); c4=c2-c1; c4.print (); c5=c1*c2; c5.print (); c6=c2/c1; c6.print (); c7=-c1; c7.print (); co1=c1; co1=fun(c1); co1.print (); cout<<c1; return 0; }

C++重载运算符“<<”和“>>”出现错误

主函数中用<<>时 出现错误 no operator defined which takes a right-hand operand of type 'class vsctor' (or there is no acceptable conversion) #include<iostream> using namespace std; class vsctor { public: vsctor(int z1=0,int z2=0,int z3=0); void set(int z1,int z2,int z3); void get(int& a,int& b,int& c) const; //ostream& operator<<(ostream& os,const vsctor& v); //istream& operator>>(istream& is,vsctor& v); private: int a,b,c; }; main() { int z1,z2,z3,x1,x2,x3,y1,y2,y3; vsctor v1(1,1,1); vsctor v2(2,2,2); cout<<v1<<v2; vsctor v; cin>>v; cout<<v; } vsctor::vsctor(int z1,int z2,int z3):a(z1),b(z2),c(z3) {} void vsctor::set(int x1,int x2,int x3) { a=x1;b=x2;c=x3; } void vsctor::get(int& z1,int& z2,int& z3) const { z1=a;z2=b;z3=c; } ostream& operator<<(ostream& os,const vsctor& v) { int z1,z2,z3; v.get( z1,z2,z3); os<<"("<<z1<<","<<z2<<","<<z3<<")"<<endl; return os; } istream& operator>>(istream& is,vsctor& v) { int z1,z2,z3; is>>z1>>z2>>z3; v.set(z1,z2,z3); return is; }

c++重载运算符的问题 ...

今天学习了 重载运算符, 有一个重载[]的疑问 class A { public: A(int n) { m_num = n; } int& getNum() { return m_num; } private: int m_num; }; int &operator[](A &a,int index) { cout << "index:" << index << endl; return a.getNum(); } 为什么重载运算符[]函数无法写成全局的 但++ -- 或者其他运算符都可以写在全局呢

为什么重载后置递增运算符用左移运算符重载输出时左移运算符重载函数形参不能用引用?

```cpp #include <iostream> #include <string> using namespace std; class person { friend ostream& operator<<(ostream &cout,person p); private: int m_a; int m_b; public: person(int a,int b) { m_a=a; m_b=b; } //重载后置++运算符 person operator++(int) { person temp=*this; m_a++; m_b++; return temp; } }; //全局函数重载左移运算符 ostream& operator<<(ostream &out,person p) //???不能用引用&p { out<<"m_a="<<p.m_a<<" m_b="<<p.m_b; return out; } void test() { person pp(0,0); cout<<pp<<endl; cout<<pp++<<endl; } int main() { test(); system ("pause"); return 0; } ``` 如果在全局函数重载那儿加了引用,即: ```cpp friend ostream& operator<<(ostream &cout,person &p); ``` 和 ```cpp ostream& operator<<(ostream &out,person &p) ``` 会报错,如下: { "owner": "C/C++", "severity": 8, "message": "没有与这些操作数匹配的 \"<<\" 运算符 -- 操作数类型为: std::ostream << person", "startLineNumber": 36, "startColumn": 9, "endLineNumber": 36, "endColumn": 9 } 但是不加引用可以正常运行。为什么????

在定义重载赋值运算符时,为什么要用应用做返回值。

class string { char *m_str; public: string(char *s) { m_str=s; } string() {}; String & operator=(const string s) // 这里!!!返回值为啥是引用 { m_str=s.m_str; return *this }// 返回*this不是会调用析构函数的吗! }; int main() { string s1("abc"),s2; s2=s1; cout<<s2.m_str; }

范磊c++,在十八章写String类 “重载输入运算符” 遇到问题,请各位大侠帮忙指点!

#include <iostream> using namespace std; class String { public: String(); String(char*); String(String&); virtual ~String(){cout<<"析构函数执行\n";delete []str;len=0;} const int getlen()const{return len;} friend ostream& operator<<(ostream&o,String &s) { o<<s.str; return o; } friend istream& operator>>(istream&i,String &s) { i>>s.str; return i; } char &operator[](unsigned short int); String & operator=(String&); String & operator=(char *); private: int len; char *str; }; String::String() { cout<<"不带参数的构造函数执行\n"; len=0; str=new char[1]; str[0]='\0'; } String::String(char*ch) { cout<<"带一个参数的构造函数执行\n"; len=strlen(ch); str=new char[len+1]; for (int i=0;i<len;i++) { str[i]=ch[i]; } str[len]='\0'; } String::String(String&s) { cout<<"复制构造函数执行\n"; len=s.getlen(); str=new char[len+1]; for (int i=0;i<len;i++) { str[i]=s.str[i]; } str[len]='\0'; } char &String::operator[](unsigned short int length) { cout<<"operator[]函数执行\n"; if (len<length) { return str[len-1]; } return str[length]; } String & String::operator=(String&s) { cout<<"operator=函数执行\n"; delete []str; len=s.getlen(); str=new char[len+1]; for (int i=0;i<len;i++) { str[i]=s.str[i]; } str[len]='\0'; return *this; } String & String::operator=(char*ch) { cout<<"operator=char函数执行\n"; delete []str; len=strlen(ch); str=new char[len+1]; for (int i=0;i<len;i++) { str[i]=ch[i]; } str[len]='\0'; return *this; } int main() **strong text** { String s; cin>>s; cout<<s<<endl; cout<<s.getlen()<<endl; return 0; } 运行到结尾的时候,输出了我输入的字符,然后输出s.getlen(字符长度)的时候并不是我输入的字符长度,并且程序运行到这里后就崩溃了,当删除掉析构函数里的delete []str以后程序就不会崩溃了,请问是什么原因呢?

类模版对运算符重载以及输入输出重载

#include<iostream.h> //using namespace std; template <class T> class Complex { public: friend istream& operator >> (istream &input,Complex &<T>c) { cin >> c.real >> c.imag; return input; } friend ostream& operator << (ostream &output,Complex &<T>c) { cout << "(" << c.real << "+" << c.imag << "i)" << endl; return output; } //friend istream & operator >> (istream &input,Complex &); //friend ostream & operator << (ostream &output,Complex &); Complex(T r,T i) { real = r; imag = i; } Complex(){} Complex operator + (Complex &c2) { return Complex(real + c2.real,imag + c2.imag); } Complex operator * (Complex &c2) { return Complex(real * c2.real,imag * c2.imag); } Complex operator % (Complex &c2) { return Complex(real % c2.real,imag % c2.imag); } Complex operator - (Complex &c2) { return Complex(real - c2.real,imag - c2.imag); } private: T real,imag; }; //template<class T> int main() { Complex<float>c1,c2,c3; cout << "请输入第一个对象的实部和虚部" << endl; cin >> c1; cout << "请输入第一个对象的实部和虚部" << endl; cin >> c2; c3 = c1 + c2; cout << c3; c3 = c1 - c2; cout << c3; c3 = c1 * c2; cout << c3; c3 = c1 % c2; cout << c3; return 0; }

C++ list赋值和类的运算符重载

刚刚发现了个问题,一直卡着我 class CA { public: CA(){} ~CA(){} public: VOID operator = ( CA& msg ) { dwvalue = msg.dwvalue; } private: DWORD dwvalue; }; VOID Fuck1( OUT list<CA>& bb ) { list< CA > aa; CA a; CA b; aa.push_back(a); aa.push_back(b); // list< CA > cc = aa; bb = aa; } VOID RegisteFunction( VOID ) { list< CA > bb; Fuck1( bb ); return; } 我要是以上面的写法 是编译不过的, 有两种方法,第一种 :把 fuck1中的bb=aa去掉,改成list< CA > cc = aa;这种写法,就可以编译通过, 第二种,把类的运算符重载改成operator = ( CA* msg ),也是可以编译通过的 当然 还可以把重载运算符去掉。。。但是 我其实是想做一个list的赋值操作,而且那个类是定义好的,里面需要有个重载运算符的操作, 所以我想问问: 1、 list< CA > cc = aa方式和先声明一个list<CA> cc; 再做 cc=aa;的操作有什么区别? 2、运算符重载上我看都是用的引用,指针的写法可以吗?有什么区别?

重载运算符的问题,如何实现int + (某类对象)

#include <iostream> using namespace std; template<typename T> class BigNumber { T n; public: BigNumber(T i) :n(i) {} BigNumber operator+(BigNumber b) { return BigNumber(n + b.n); } }; int main() { BigNumber<int> b1(1), b2(2); 3 + 3; b1 + 3; 3+b1;//这是错的,如何改成对的 b1 + b2; return 0; }

关于运算符+重载的时候出现错误

#include <iostream> #include <conio.h> using namespace std; // enum bool {false,true}; struct element { //定义链表中的结点结构 int val; element *next; }; class list { //定义链表类 protected:element *elems; public: list() { elems = 0; } ~list(); virtual bool insert(int); //此虚函数在派生类中可重新定义 virtual bool deletes(int); //此虚函数在派生类中可重新定义 bool contain(int); void print(); }; class set :public list { //将集合类 set 定义为链表类 list 的派生类 int Card; public: set() { Card = 0; } bool insert(int); //重定义此函数 bool deletes(int); //重定义此函数 bool add(set*, set*); bool and(set*, set*); bool minute(set*, set*); friend set operator +(set&, set&); friend set operator -(set&, set&); friend set operator *(set&, set&); }; list::~list() //list 类得析构函数定义,循环释放各元素所占的存储 { element *tmp = elems; for (element *elem = elems; elem != 0;) { tmp = elem; elem = elem->next; delete tmp; } } bool list::insert(int val) //定义 list 类中插入元素的成员函数 { element *elem = new element; //为新元素分配存储 if (elem != 0) { elem->val = val; //将新元素插入到链表头 elem->next = elems; elems = elem; return true; } else return false; } bool list::deletes(int val) //定义 list 类中删除元素的成员函数 { if (elems == 0) return false; //若表为空,返回 false element *tmp = elems; if (elems->val == val) { //若待删除的元素为表头元素 elems = elems->next; delete tmp; return true; } else for (element *elem = elems; elem->next != 0; elem = elem->next) if (elem->next->val == val) { //循环查找待删除元素 tmp = elem->next; elem->next = tmp->next; delete tmp; return true; } return false; } bool list::contain(int val) { //判元素 val 在链表中是否存在,存在返回true,不存在返回false if (elems == 0)return false; if (elems->val == val) return true; else for (element *elem = elems; elem->next != 0; elem = elem->next) if (elem->next->val == val) return true; return false; } void list::print() //输出链表中各元素 { if (elems == 0) return; for (element *elem = elems; elem != 0; elem = elem->next) cout << elem->val << " "; cout << endl; } bool set::insert(int val) //在 set 类中的 insert 的重定义版本 { if (!contain(val)) { //先判断此元素是否存在,然后再调用基类的此函数版本 ++Card; list::insert(val); return true; } return false; } bool set::deletes(int val) //在 set 类中的 deletes 的重定义版本 { if (list::deletes(val)) //调用基类中的此函数版本 { return true; } return false; } bool set::add(set* s1,set* s2) { for (element* elem=s1->elems;elem!=NULL;elem=elem->next) { insert(elem->val); } for (element* elem = s2->elems; elem != NULL; elem = elem->next) { insert(elem->val); } return true; } bool set:: and (set* s1,set* s2) { for (element* elem=s1->elems;elem!=NULL;elem=elem->next) { if (s2->contain(elem->val)) { insert(elem->val); } } return true; } bool set::minute(set* s1,set* s2) { for (element* elem = s1->elems; elem!= NULL; elem = elem->next) { if (!s2->contain(elem->val)) { insert(elem->val); } } return true; } set operator +(set& s1, set& s2) { set s; for (element* elem = s1.elems; elem != NULL; elem = elem->next) { s.insert(elem->val); } for (element* elem = s2.elems; elem != NULL; elem = elem->next) { s.insert(elem->val); } return s; } set operator -(set& s1, set& s2) { set s; set* set1 = &s1; set* set2 = &s2; for (element* elem = set1->elems; elem != NULL; elem = elem->next) { if (!set2->contain(elem->val)) { s.insert(elem->val); } } return s; } set operator *(set& s1, set& s2) { set s; for (element* elem = s1.elems; elem != NULL; elem = elem->next) { if (s2.contain(elem->val)) { s.insert(elem->val); } } return s; } int main() { set *ptr, set1,set2; ptr = &set1; ptr->insert(15); ptr->insert(16); ptr->insert(17); ptr->insert(18); ptr->print(); ptr = &set2; ptr->insert(20); ptr->insert(19); ptr->insert(17); ptr->insert(18); ptr->print(); set set3, set4, set5; ptr = &set3; set3 = (set1 + set2); //set4 = set1 - set2; //set5 = set1 * set2; ptr->print(); ptr->print(); ptr->print(); return 1; }

C++等号运算符‘=’重载问题,显示乱码。

c++中定义两个数组类,重载‘=’运算符,令其按位赋值而非直接地址赋值,调用重载操作符后,显示乱码, 刚开始学习c++,求大神帮忙 class ARRAY{ //数组 类 int N; int *arr; public: ARRAY(); ARRAY(int *b,int m); ~ARRAY(){delete []arr;} void setfirst(int a){ *arr=a;} void show(); ARRAY operator=(ARRAY b); }; ARRAY ARRAY::operator=(ARRAY b){ // 重载 = N=b.N; arr=new int[N]; for(int i=0;i<N;i++) arr[i]=b.arr[i]; return *this; } ARRAY::ARRAY(){ //构造函数 N=10; arr=new int[N]; for(int i=0;i<N;i++){ arr[i]=0; } } ARRAY::ARRAY(int *b,int m){ //构造函数 N=m; arr=new int[N]; for(int i=0;i<N;i++){ arr[i]=b[i];} } void ARRAY::show(){ //显示 for(int i=0;i<N;i++){cout<<arr[i]<<' ';} cout<<endl; } void main(){ int d[10]={1,2,3,4,5,6,7,8,9,10}; int N=9; ARRAY a(d,N); ARRAY b; a.show(); b.show(); b=a; //赋值 ???????? cout<<"*************\n"; a.show(); //显示出错 b.show(); cout<<"*************\n"; a.setfirst(10); a.show(); b.show(); cout<<"*************\n"; while(1); } 重载=后显示如下 ![图片说明](https://img-ask.csdn.net/upload/201810/31/1540975585_86538.png)

重载运算符类型不匹配

#ifndef DAT_H_INCLUDED #define DAT_H_INCLUDED #include<istream> #include<ostream> #include<iostream> using namespace std; class date { private: int year; int month; int day; int dton(date &a); //将指定日期转换成从0年O月O日起的天数 date ntod(int b); //将指定的0年O月O日起的天数转换成对应的日期 bool leap(int year); public: date(); date(int y,int m,int d); friend istream &operator >> (istream &is,date &d); friend ostream &operator << (ostream &os,date &d); date operator +(int &days); date operator -(int &days); int operator -(date &da); void operator =(date &da); int dt(date &a); date nt(int b); bool le(int year); ~date(); }; #endif // DAT_H_INCLUDED ``` #include"dat.h" #include<istream> #include<ostream> #include<iostream> using namespace std; static int day_tab[2][12] = {{31,28,31,30,3l,30,3l,3l,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}}; date::date() { year = 0; month = 1; day = 1; } date::date(int y,int m,int d) { year = y; month = m; day = d; } istream &operator >> (istream &is,date &d) { cin >> d.year >> d.month >> d.day; return is; } ostream &operator << (ostream &os,date &d) { cout << d.year << "." << d.month << "." << d.day << endl; return os; } bool date::leap(int year) { if((year % 4 == 0 && year % 100 != 0)||year % 400 == 0) return true; else return false; } date date::operator +(int &days) { int rest; rest = this->dt(*this) + days; return this->nt(rest); } int date::dton(date &a) { int ye,mo,da=0; for(ye = 0;ye < a.year;ye++) { if(a.le(a.year)) da += 366; else da += 365; } for(mo = 0;mo < a.month-1;mo++) { if(a.le(a.year)) da += day_tab[0][mo]; else da += day_tab[1][mo]; } da += a.day; return da; } date date::ntod(int b) { date a(0,1,1); int rest = b; while(1) { if(a.le(a.year)) { rest -= 366; if(rest < 0) { rest += 366; break; } a.year++; } else { rest -= 365; if(rest < 0) { rest += 365; break; } a.year++; } } while(1) { if(a.le(a.year)) { for(int i = 0;i < 12;i++) { rest -= day_tab[0][i]; if(rest < 0) { rest += day_tab[0][i]; break; } a.month++; } } else { for(int i = 0;i < 12;i++) { rest -= day_tab[1][i]; if(rest < 0) { rest += day_tab[1][i]; break; } a.month++; } } break; } a.day = rest; return a; } date date::operator -(int &days) { int da; da = this->dt(*this) - days; return this->nt(da); } int date::operator -(date &da) { int rest; rest = this->dt(*this) - da.dt(da); return rest; } int date::dt(date &a) { return dton(a); } date date::nt(int b) { return ntod(b); } bool date::le(int year) { return leap(year); } void date::operator =(date &da) { this->year = da.year; this->month = da.month; this->day = da.day; } date::~date() { } #include<iostream> #include<ostream> #include<windows.h> #include"dat.h" using namespace std; int main() { while(1) { date *p = new date; cout << "请输入日期:" << endl; cin >> *p; int n; cout << "请选择功能:" << endl; cout << "1.将日期转化为天数\n" << "2.两日期相差天数\n" << "3.计算所加天数后日期\n" << "4.计算所减天数后日期\n" << "5.将天数转化为日期\n" << "6.退出" << endl; cin >> n; while(n<1||n>6) { cout << "输入错误,请重新选择功能" << endl; n = 0; cin >> n; } system("cls"); switch(n) { case 1: { cout << p->dt(*p) << endl; system("pause"); system("cls"); break; } case 2: { date *q = new date; cout << "请输入日期:" << endl; cin >> *q; cout << *p - *q << endl; system("pause"); system("cls"); delete q; break; } case 3: { cout << "请输入天数:" << endl; int m; cin >> m; cout << *p + m << endl; system("pause"); system("cls"); break; } case 4: { cout << "请输入天数:" << endl; int k; cin >> k; cout << (*p - k) << endl; system("pause"); system("cls"); break; } case 5: { cout << "请输入天数:" << endl; int u; cin >> u; date q = p->nt(u); cout << q << endl; system("pause"); system("cls"); break; } case 6:exit(0); } } } 报错: ||=== Build: Debug in Date (compiler: GNU GCC Compiler) ===| D:\C++学习\Date\main.cpp||In function 'int main()':| D:\C++学习\Date\main.cpp|65|error: no match for 'operator<<' in 'std::cout << date::operator-(const int&)(((const int&)((const int*)(& k))))'| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|108|note: candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>& (*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|117|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|127|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|165|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|169|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|173|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ostream.tcc|91|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|180|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ostream.tcc|105|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|191|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|200|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|204|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|209|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|213|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|221|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\ostream|225|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char, _Traits = std::char_traits<char>]| d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\bits\ostream.tcc|119|note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>]| D:\C++学习\Date\dat.h|21|note: std::ostream& operator<<(std::ostream&, date&)| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:csdn590)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

Windows版YOLOv4目标检测实战:训练自己的数据集

课程演示环境:Windows10; cuda 10.2; cudnn7.6.5; Python3.7; VisualStudio2019; OpenCV3.4 需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:训练自己的数据集》 课程链接:https://edu.csdn.net/course/detail/28745 YOLOv4来了!速度和精度双提升! 与 YOLOv3 相比,新版本的 AP (精度)和 FPS (每秒帧率)分别提高了 10% 和 12%。 YOLO系列是基于深度学习的端到端实时目标检测方法。本课程将手把手地教大家使用labelImg标注和使用YOLOv4训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。 本课程的YOLOv4使用AlexyAB/darknet,在Windows系统上做项目演示。包括:安装软件环境、安装YOLOv4、标注自己的数据集、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算)和先验框聚类分析。还将介绍改善YOLOv4目标检测性能的技巧。 除本课程《Windows版YOLOv4目标检测实战:训练自己的数据集》外,本人将推出有关YOLOv4目标检测的系列课程。请持续关注该系列的其它视频课程,包括: 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》 《Windows版YOLOv4目标检测实战:中国交通标志识别》 《Windows版YOLOv4目标检测:原理与源码解析》

lena全身原图(非256*256版本,而是全身原图)

lena全身原图(非256*256版本,而是全身原图) lena原图很有意思,我们通常所用的256*256图片是在lena原图上截取了头部部分的256*256正方形得到的. 原图是花花公子杂志上的一个

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

Java调用微信支付

Java 使用微信支付 一. 准备工作 1.

汽车租赁管理系统需求分析规格说明书

汽车租赁管理系统需求分析规格说明书,这只是一个模板,如果有不会的可以借鉴一下,还是蛮详细的。。。。

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

Python入门视频精讲

Python入门视频培训课程以通俗易懂的方式讲解Python核心技术,Python基础,Python入门。适合初学者的教程,让你少走弯路! 课程内容包括:1.Python简介和安装 、2.第一个Python程序、PyCharm的使用 、3.Python基础、4.函数、5.高级特性、6.面向对象、7.模块、8.异常处理和IO操作、9.访问数据库MySQL。教学全程采用笔记+代码案例的形式讲解,通俗易懂!!!

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Java62数据提取代码

利用苹果手机微信下面的wx.data文件提取出62数据,通过62可以实现不同设备直接登陆,可以通过文件流的方式用脚本上传到服务器进行解析

Python代码实现飞机大战

文章目录经典飞机大战一.游戏设定二.我方飞机三.敌方飞机四.发射子弹五.发放补给包六.主模块 经典飞机大战 源代码以及素材资料(图片,音频)可从下面的github中下载: 飞机大战源代码以及素材资料github项目地址链接 ————————————————————————————————————————————————————————— 不知道大家有没有打过飞机,喜不喜欢打飞机。当我第一次接触这个东西的时候,我的内心是被震撼到的。第一次接触打飞机的时候作者本人是身心愉悦的,因为周边的朋友都在打飞机, 每

2018年全国大学生计算机技能应用大赛决赛 大题

2018年全国大学生计算机技能应用大赛决赛大题,程序填空和程序设计(侵删)

Lena图像处理测试专业用图,高清完整全身原图

Lena图像处理测试专业用图,高清完整全身原图,该图片很好的包含了平坦区域、阴影和纹理等细节,这些都有益于测试各种不同的图像处理算法。它是一幅很好的测试照片!其次,由于这是一个非常有魅力女人的照片。

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

verilog实现地铁系统售票

使用 verilog 实现地铁售票

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Python可以这样学(第四季:数据分析与科学计算可视化)

董付国老师系列教材《Python程序设计(第2版)》(ISBN:9787302436515)、《Python可以这样学》(ISBN:9787302456469)配套视频,在教材基础上又增加了大量内容,通过实例讲解numpy、scipy、pandas、statistics、matplotlib等标准库和扩展库用法。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

获取Linux下Ftp目录树并逐步绑定到treeview

在linux下抓取目录树,双击后获取该节点子节点(逐步生成)。另外有两个类,一个是windows下的(一次性获取目录树),一个是linux下的(足部获取目录树)

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序 实例汇总 完整项目源代码

微信小程序 实例汇总 完整项目源代码

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯

基于西门子S7—1200的单部六层电梯设计程序,1部6层电梯。 本系统控制六层电梯, 采用集选控制方式。 为了完成设定的控制任务, 主要根据电梯输入/输出点数确定PLC 的机型。 根据电梯控制的要求,

相关热词 c#对文件改写权限 c#中tostring c#支付宝回掉 c#转换成数字 c#判断除法是否有模 c# 横向chart c#控件选择多个 c#报表如何锁定表头 c#分级显示数据 c# 不区分大小写替换
立即提问
相关内容推荐