Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,888 questions

51,815 answers

573 users

How to use assert to ensure that a function is executed only once in C++

1 Answer

0 votes
#include <iostream>
#include <assert.h>

class Example {
    private: 
        int x, y;
        bool initialize;
    public:
        Example() {
           initialize = false; 
        };

        void init(int _x, int _y)  { // executed only once 
            assert(initialize == false);
            x = _x;
            y = _y;
            initialize = true;
        }
        
        void show() {
            std::cout << x << " " << y << "\n";
        }
};
      
 
int main() {
    Example obj;

    obj.init(67, 128);
    obj.show();
    
    obj.init(90, 5); // void Example::init(int, int): Assertion `initialize == false' failed.
}

    
    
/*
run:
    
67 128
test.cpp:14: void Example::init(int, int): Assertion `initialize == false' failed.
Aborted
    
*/

 



answered Sep 17, 2024 by avibootz

Related questions

1 answer 146 views
1 answer 169 views
1 answer 110 views
1 answer 137 views
1 answer 82 views
...