Ответы пользователя по тегу C++
  • Как подключить OpenGL в Qt Creator?

    Julila
    @Julila
    вечный студент / german version
    rucodes.com/opengl-microsoft-visual-studio-c.html

    Проверь в настройках проэкта, прописаны ли там уже lib для openGl
    Ответ написан
    Комментировать
  • В чем ошибка в операторе присвоения?

    Julila
    @Julila Автор вопроса
    вечный студент / german version
    Константин Степанов
    class Audioformat {
    public:  
    	//Audioformat(){mp3_counter++;};
       virtual  string titel() { return ""; }
       virtual  string info()  { return ""; }
      virtual ~Audioformat() {};
       
       
    };
    
    int mp3_counter = 0;
    
    class MP3_Format : public Audioformat {
    public:
    	
    	MP3_Format(){mp3_counter++;};
    	MP3_Format(MP3_Format &cop){
    		MP3_Format(cop.song);
    		mp3_counter++;
    		}
    	
    	MP3_Format(const char* c_string) {
    		 
            song = (const char*) c_string;
    				mp3_counter++;
    
    	}
    
       
        MP3_Format(string _song): song(_song){
    		mp3_counter++;
    		 }
    		
    		 	 
       MP3_Format& operator=(const MP3_Format&){
    	   cout<< "Im here" ; 
    	   return *this ; 
       }
       
       
    		 ~MP3_Format(){mp3_counter--;}
        string titel()      { return  song; }
        string info()    { return "MP3"; }
    
    	 operator string() const { return song; }
    	 operator string() { return song; }
    	     friend bool operator==(const MP3_Format& lhs, const MP3_Format& rhs)
        { 
            return lhs.song == rhs.song;
        }
        friend bool operator!=(const MP3_Format& lhs, const MP3_Format& rhs)
        {
            return !operator==(lhs,rhs);
        }
           MP3_Format& operator=(const char* c_string){
    		   song = *c_string; 
    		   return *this; 
    	   }
    	 
    	  
    		 
    private:
        string song;
    };

    Тест я не могу изменять
    bool test_A1_e() {
    #ifdef A1_e
    	//MP3_Format mp3a("Summertime");
    	MP3_Format mp3a = "Summertime";
    	MP3_Format mp3b;
    	mp3b = "Summertime";
    	cout << mp3b.titel() << " mp3b.titel()"; 
    	
    	string ta = mp3a.titel();
    	string tb = mp3b.titel();
    
    	return (ta == "Summertime" &&
    		tb == "Summertime" );
    #else
    	return false;
    #endif
    }
    Ответ написан
  • Как посчитать сумму с помощью thread?

    Julila
    @Julila Автор вопроса
    вечный студент / german version
    #include <iostream>
    #include <thread>
    #include <vector>
    #include <cstdlib>
    #include <algorithm>
    
    #include <mutex>
    using namespace std;
    mutex m_sum;
    void Work( double &sum ){ 	
        unsigned int n0 = 1;
        unsigned   int n1 = 1000001;
        double tmp; 
    unique_lock<mutex> lck {m_sum}; 
     
    	for (unsigned int j = n0 ; j<n1 ; j++) {
    	tmp = 1.0/(j*j);
    			double sum=sum+tmp; }
    		cout << "b" ;	
    	
    	lck.unlock();}
    	
    bool sum(unsigned int number_threads)
    
    {
        const double pi = 3.14159265358979323846264338327;
        const double exact = pi*pi/6.0;
        
           double s=0;
    
        thread* t = new thread[number_threads];
        
       for( long unsigned int i = 0; i < number_threads; ++i){
    	  
     	t[i] = thread(Work, std::ref(s) );
    	}
    	
    	  for( long unsigned int i = 0; i < number_threads; ++i){
     	t[i].join();
    	}
     	delete []t;
     	cout << "sum=" << s;
        cout << "sum=" << s << " " << fabs(s-exact) << endl;
        
        return fabs(s-exact)<1e-4;
    }
    Ответ написан