Search Results

Search found 23792 results on 952 pages for 'void pointers'.

Page 99/952 | < Previous Page | 95 96 97 98 99 100 101 102 103 104 105 106  | Next Page >

  • Can't catch newConnection() signal from QTcpServer

    - by Bob
    I am trying to make a simple server thread in QT to accept a connection, however although the server is listening (I can connect with my test app) I can't get the newConnection() signal to be acted on. Any help as to what I'm missing here would be much appreciated! class CServerThread : public QThread { Q_OBJECT protected: void run(); private: QTcpServer* server; public slots: void AcceptConnection(); }; void CServerThread::run() { server = new QTcpServer; QObject::connect(server, SIGNAL(newConnection()), this, SLOT(AcceptConnection())); server-listen(QHostAddress::Any, 1000); // Any port in a storm exec(); // Start event loop } void CServerThread::AcceptConnection() { OutputDebugStringA("\n***** INCOMING CONNECTION"); // This is never called! }

    Read the article

  • Exception throws: encapsulate them or not?

    - by Simon
    Hi there. Once I read an MSDN article that encouraged the following programming paradigm: public class MyClass { public void Method1() { NewCustomException(); } public void Method2() { NewCustomException(); } void NewCustomException() { throw new CustomException("Exception message"); } } Do you think this paradigm makes sense? Wouldn't it be enough to store the exception message in a static const field and then pass it to the exception's constructor, instead of encapsulating the whole exception throw?

    Read the article

  • How to pass a class method as an argument for another function in C++ and openGL?

    - by tsubasa
    I know this thing works: void myDisplay() { ... } int main() { ... glutDisplayFunc(myDisplay) ... } so I tried to include myDisplay() function to a class that I made. Because I want to overload it in the future with a different class. However, the compiler complains that argument of type 'void (ClassBlah::)()' does not match 'void(*)()' . Here is the what I try to make: class ClassBlah { .... void myDisplay() .... } ...... int main() { ... ClassBlah blah glutDisplayFunc(blah.myDisplay) ... } Does anybody knows how to fix this problem? Many thanks.

    Read the article

  • How string accepting interface should look like?

    - by ybungalobill
    Hello, This is a follow up of this question. Suppose I write a C++ interface that accepts or returns a const string. I can use a const char* zero-terminated string: void f(const char* str); // (1) The other way would be to use an std::string: void f(const string& str); // (2) It's also possible to write an overload and accept both: void f(const char* str); // (3) void f(const string& str); Or even a template in conjunction with boost string algorithms: template<class Range> void f(const Range& str); // (4) My thoughts are: (1) is not C++ish and may be less efficient when subsequent operations may need to know the string length. (2) is bad because now f("long very long C string"); invokes a construction of std::string which involves a heap allocation. If f uses that string just to pass it to some low-level interface that expects a C-string (like fopen) then it is just a waste of resources. (3) causes code duplication. Although one f can call the other depending on what is the most efficient implementation. However we can't overload based on return type, like in case of std::exception::what() that returns a const char*. (4) doesn't work with separate compilation and may cause even larger code bloat. Choosing between (1) and (2) based on what's needed by the implementation is, well, leaking an implementation detail to the interface. The question is: what is the preffered way? Is there any single guideline I can follow? What's your experience?

    Read the article

  • static thread function access non-static class member in C++

    - by user397390
    Class Test{ int value; static void* thread_func(void* args){ value++; } void newthread(){ pthread_create(&thread_func,...); } } I'm trying to create a thread in Class Test. Therefore compiler forces me to make thread_func static. However I cannot access the non-static member "value" anymore. It says: invalid use of member 'Class::value' in static member function Is there a way around it?

    Read the article

  • Events convention - I don't get it

    - by bobjink
    My class with an event: public class WindowModel { public delegate void WindowChangedHandler(object source, WindowTypeEventArgs e); public event WindowChangedHandler WindowChanged; public void GotoWindow(WindowType windowType) { this.currentWindow = windowType; this.WindowChanged.Invoke(this, new WindowTypeEventArgs(windowType)); } } Derived event class: public class WindowTypeEventArgs : EventArgs { public readonly WindowType windowType; public WindowTypeEventArgs(WindowType windowType) { this.windowType = windowType; } } Some other class that register it to the event: private void SetupEvents() { this.WindowModel.WindowChanged += this.ChangeWindow; } private void ChangeWindow(object sender, WindowTypeEventArgs e) { //change window } What have I gained from following the .Net convention? It would make more sense to have a contract like this public delegate void WindowChangedHandler(WindowType windowType); public event WindowChangedHandler WindowChanged; Doing it this way, I don't need to create a new class and is easier to understand. I am not coding a .Net library. This code is only going to be used in this project. I like conventions but am I right when I say that in this example it does not make sense or have i missunderstood something?

    Read the article

  • Java Thread execution on same data

    - by AR89
    first of all here is the code, you can just copy an paste import java.util.ArrayList; public class RepetionCounter implements Runnable{ private int x; private int y; private int[][] matrix; private int xCounter; private int yCounter; private ArrayList<Thread> threadArray; private int rowIndex; private boolean[] countCompleted; public RepetionCounter(int x, int y, int [][]matrix) { this.x = x; this.y = y; this.matrix = matrix; this.threadArray = new ArrayList<Thread>(matrix.length); this.rowIndex = 0; for(int i = 0; i < matrix.length; i++){ threadArray.add(new Thread(this)); } countCompleted = new boolean[matrix.length]; } public void start(){ for (int i = 0; i < threadArray.size(); i++){ threadArray.get(i).start(); this.rowIndex++; } } public void count(int rowIndex) { for(int i = 0; i < matrix[rowIndex].length; i++){ if (matrix[rowIndex][i] == x){ this.xCounter++; } else if (matrix[rowIndex][i] == y){ this.yCounter++; } } } @Override public void run() { count(this.rowIndex); countCompleted[this.rowIndex] = true; } public int getxCounter() { return xCounter; } public void setxCounter(int xCounter) { this.xCounter = xCounter; } public int getyCounter() { return yCounter; } public void setyCounter(int yCounter) { this.yCounter = yCounter; } public boolean[] getCountCompleted() { return countCompleted; } public void setCountCompleted(boolean[] countCompleted) { this.countCompleted = countCompleted; } public static void main(String args[]){ int[][] matrix = {{0,2,1}, {2,3,4}, {3,2,0}}; RepetionCounter rc = new RepetionCounter(0, 2, matrix); rc.start(); boolean ready = false; while(!ready){ for(int i = 0; i < matrix.length; i++){ if (rc.getCountCompleted()[i]){ ready = true; } else { ready = false; } } } if (rc.getxCounter() > rc.getyCounter()){ System.out.println("Thre are more x than y"); } else {System.out.println("There are:"+rc.getxCounter()+" x and:"+rc.getyCounter()+" y"); } } } What I want this code to do: I give to the object a matrix and tow numbers, and I want to know how much times these two numbers occurs in the matrix. I create as many thread as the number of rows of the matrix (that' why there is that ArrayList), so in this object I have k threads (supposing k is the number of rows), each of them count the occurrences of the two numbers. The problem is: if I run it for the first time everything work, but if I try to execute it another time I get and IndexOutOfBoundException, or a bad count of the occurrences, the odd thing is that if I get the error, and modify the code, after that it will works again just for once. Can you explain to me why is this happening?

    Read the article

  • C++ Dynamic object construction

    - by Rajesh Subramanian
    I have a base class, class Msg { ParseMsg() { ParseMsgData(); ParseTrailer(); } virtual void ParseMsgData() = 0; ParseTrailer(); }; and derived classes, class InitiateMsg { void ParseMsgData() { ... } }; class ReadOperationMsg { void ParseMsgData() { ... } }; class WriteOperationMsg { void ParseMsgData() { ... } }; and the scenario is below, void UsageFunction(string data) { Msg* msg = ParseHeader(data); ParseMsg } Msg* ParseHeader(string data) { Msg *msg = NULL; .... switch() { case 1: msg = new InitiateMsg(); break; case 2: msg = new ReadOperationMsg{(); break; case 3: msg = new WriteOperationMsg{(); break; .... } return msg; } based on the data ParseHeader method will decide which object has to be created, So I have implemented ParseHeader function outside the class where I am using. How can I make the ParseHeader function inside the Msg class and then use it? In C# the same is achieved by defining ParseHeader method as static with in class and use it from outside,

    Read the article

  • Update NSView in function of events

    - by Forchita
    Hi everyone! I have a main view (subclass of NSView) and as i'm new to cocoa, i'd like to know how to update the view in function of events. I know there are many methods that take events such as -(void)mouseMoved:(NSEvent*)event or - (void)mouseClicked:(NSEvent*)event My algorithm to determine what to do is ready. I want to know where I should update the main view: is it in the -(void)mouseMoved:(NSEvent*)event or in the - (void)drawRect:(NSRect)dirtyRect. And if it is in drawRect, then how should i pass the information to it? Thanks in advance!

    Read the article

  • How to control manager class in Blackberry

    - by Keng
    Dear All, I have a problem when creating a UI on Blackberry. First, i try to create a ChatLayoutManager class extended from Manager class. My layout has three component: topfield, mainfield and bottom field. public class ChatLayoutManager extends Manager { private Field bottomField; private Field mainField; private Field titleField; public ChatLayoutManager(long style) { super(style); } protected void sublayout(int width, int height) { setExtent(width, height); int y = 0; if (bottomField != null) { layoutChild(bottomField, width, height); // This goes at the bottom of the screen setPositionChild(bottomField, 0, height-bottomField.getHeight()); height -= bottomField.getHeight(); } if (titleField != null) { layoutChild(titleField, width, height); // This goes at the top of the screen setPositionChild(titleField, 0, 0); height -= titleField.getHeight(); y += titleField.getHeight(); } if (mainField != null) { layoutChild(mainField, width, height); // This goes just below the title field (if any) setPositionChild(mainField, 0, y); } } public void setMainField(Field f) { mainField = f; add(f); } public void setBottomField(Field f) { bottomField = f; add(f); } public void setTitleField(Field f) { titleField = f; add(f); } Then i create another field (ChatField) extended from manager to add to mainfield in the ChatLayoutManager class which i have created above. public class ChatField extends Manager{ private Field _contentField[]; protected ChatField(){ super(Manager.HORIZONTAL_SCROLL | Manager.VERTICAL_SCROLL); } // TODO Auto-generated constructor stub} protected synchronized void sublayout(int width, int height) { // TODO Auto-generated method stub setExtent(width, height); int x = 0; int y = 0; if(_contentField.length > 0){ for(int i = 0 ;i<_contentField.length; i++){ //if(getManager() == this){ this.layoutChild(_contentField[i], _contentField[i].getWidth(), _contentField[i].getHeight()); this.setPositionChild(_contentField[i], x, y); if(_contentField[i++]!= null){ if ((_contentField[i].getWidth() + _contentField[i].getWidth()) >= width){ x = 0; y += _contentField[i].getHeight(); } else{ x += _contentField[i].getWidth(); } } //} } } } public void setContentField(Field field[]){ _contentField = field; } } And now, when i create some fields(such as TextField, BitmapField ...) added to ChatField, the program has an error "Field is not a child of this manager". The reason is when the framework invokes the sublayout function of the ChatField class , when sublayout starts calling layoutChild function the manager of field is not ChatField but ChatlayoutManager. I've experience hard time trying to resolve this problem, still I have no solution. Anybody can give me some suggestions? I really appreciate.

    Read the article

  • DoWork of BackgroundWorker is called twice when RunWorkerAsync is called once?

    - by Power-Mosfet
    I have create a backgroundworker in an class it works, but if i call and wait until the end run, call it for the second time it will do the same process twice i thinks there is somthing wrong with bw.DoWork += private void button1_Click(object sender, EventArgs e) { nptest.test.start("null", "null"); } namespace nptest { class test { public static void start(string str, string strb) { if (bw.IsBusy != true) { bw.WorkerSupportsCancellation = true; bw.DoWork += (obj, e) => bw_DoWork(str, strb); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); bw.RunWorkerAsync(); } } private static BackgroundWorker bw = new BackgroundWorker(); private static void bw_DoWork(string str, string strb) { System.Windows.Forms.MessageBox.Show("initializing BackgroundWorker"); } private static void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if ((e.Cancelled == true)) { Console.WriteLine("Canceled"); } else if (!(e.Error == null)) { Console.WriteLine("Error: " + e.Error.Message); } bw.Dispose(); } } }

    Read the article

  • C# Design Reduce a Long List of Methods

    - by guazz
    I have a simple application that loads data from an XML file to a database. public class EmployeeLoader() { public void LoadEmpoyees() {...} public void LoadSalaries() {...} public void LoadRegistrationData() {...} public void LoadTaxData() {...} } Is it a good idea to have multiple "Load" methods as this looks like a code smell as I have about tweney Load methods? If so, how do I make my code more readable? Each Load method loads data to the corresponding table in the database via a repository?

    Read the article

  • Android: Unable to access a local website over HTTPS

    - by user1253789
    I am trying to access a locally hosted website and get its HTML source to parse. I have few questions: 1) Can I use "https://An IP ADDRESS HERE" as a valid URL to try and access. I do not want to make changes in the /etc/hosts file so I want to do it this way. 2) I cannot get the html, since it is giving me Handshake exceptions and Certificate issues. I have tried a lot of help available over the web , but am not successful. Here is the code I am using: public class MainActivity extends Activity { private TextView textView; String response = ""; String finalresponse=""; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.TextView01); System.setProperty("javax.net.ssl.trustStore","C:\\User\\*" ); System.setProperty("javax.net.ssl.trustStorePassword", "" ); } private class DownloadWebPageTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) { } public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) { } } }; try { SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } catch (Exception e) { } try { URL url = new URL("https://172.27.224.133"); HttpsURLConnection con =(HttpsURLConnection)url.openConnection(); con.setHostnameVerifier(new AllowAllHostnameVerifier()); finalresponse=readStream(con.getInputStream()); } catch (Exception e) { e.printStackTrace(); } return finalresponse; } private String readStream(InputStream in) { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(in)); String line = ""; while ((line = reader.readLine()) != null) { response+=line; } } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return response; } @Override protected void onPostExecute(String result) { textView.setText(finalresponse); } } public void readWebpage(View view) { DownloadWebPageTask task = new DownloadWebPageTask(); task.execute(new String[] { "https://172.27.224.133" }); } }

    Read the article

  • Memory leak with objective-c on alloc

    - by Grunzig
    When I use Instruments to find memory leaks, a leak is detected on Horaires *jour; jour= [[Horaires alloc] init]; // memory leak reported here by Instruments self.lundi = jour; [jour release]; and I don't know why there is a leak at this point. Does anyone can help me? Here's the code. // HorairesCollection.h #import <Foundation/Foundation.h> #import "Horaires.h" @interface HorairesCollection : NSObject < NSCopying > { Horaires *lundi; } @property (nonatomic, retain) Horaires *lundi; -init; -(void)dealloc; @end // HorairesCollection.m #import "HorairesCollection.h" @implementation HorairesCollection @synthesize lundi; -(id)copyWithZone:(NSZone *)zone{ DefibHoraires *another = [[DefibHoraires alloc] init]; another.lundi = [lundi copyWithZone: zone]; [another autorelease]; return another; } -init{ self = [super init]; Horaires *jour; jour= [[Horaires alloc] init]; // memory leak reported here by Instruments self.lundi = jour; [jour release]; return self; } - (void)dealloc { [lundi release]; [super dealloc]; } @end // Horaires.h #import <Foundation/Foundation.h> @interface Horaires : NSObject <NSCopying>{ BOOL ferme; BOOL h24; NSString *h1; } @property (nonatomic, assign) BOOL ferme; @property (nonatomic, assign) BOOL h24; @property (nonatomic, retain) NSString *h1; -init; -(id)copyWithZone:(NSZone *)zone; -(void)dealloc; @end // Horaires.m #import "Horaires.h" @implementation Horaires -(BOOL) ferme { return ferme; } -(void)setFerme:(BOOL)bFerme{ ferme = bFerme; if (ferme) { self.h1 = @""; self.h24 = NO; } } -(BOOL) h24 { return h24; } -(void)setH24:(BOOL)bH24{ h24 = bH24; if (h24) { self.h1 = @""; self.ferme = NO; } } -(NSString *) h1 { return h1; } -(void)setH1:(NSString *)horaire{ [horaire retain]; [h1 release]; h1 = horaire; if (![h1 isEqualToString:@""]) { self.h24 = NO; self.ferme = NO; } } -(id)copyWithZone:(NSZone *)zone{ Horaires *another = [[Horaires alloc] init]; another.ferme = self.ferme; another.h24 = self.h24; another.h1 = self.h1; [another autorelease]; return another; } -init{ self = [super init]; return self; } -(void)dealloc { [h1 release]; [super dealloc]; } @end

    Read the article

  • Question about C++ inner class

    - by michael
    HI, In C++ inner class, class A { public: void f1(); private: void f2(); class B { private void f3(); }; } Does an inner class (B) has a pointer to its parent class (A)? (like it does in Java). And can B calls its parent class public/private method (like it does in Java). Thank you.

    Read the article

  • Is it safe to use a boolean flag to stop a thread from running in C#

    - by Lirik
    My main concern is with the boolean flag... is it safe to use it without any synchronization? I've read in several places that it's atomic. class MyTask { private ManualResetEvent startSignal; private CountDownLatch latch; private bool running; MyTask(CountDownLatch latch) { running = false; this.latch = latch; startSignal = new ManualResetEvent(false); } // A method which runs in a thread public void Run() { startSignal.WaitOne(); while(running) { startSignal.WaitOne(); //... some code } latch.Signal(); } public void Stop() { running = false; startSignal.Set(); } public void Start() { running = true; startSignal.Set(); } public void Pause() { startSignal.Reset(); } public void Resume() { startSignal.Set(); } } Is this a safe way to design a task? Any suggestions, improvements, comments? Note: I wrote my custom CountDownLatch class in case you're wondering where I'm getting it from.

    Read the article

  • Best ways to write a method that updates two objects in a multithreaded java environment?

    - by DanielHonig
    Suppose we have a class called AccountService that manages the state of accounts. AccountService is defined as interface AccountService{ public void debit(account); public void credit(account); public void transfer(Account account, Account account1); } Given this definition, what is the best way to implement transfer() so that you can guarantee that transfer is an atomic operation. I'm interested in answers that reference Java 1.4 code as well as answers that might use resources from java.util.concurrent in Java 5

    Read the article

  • NDK app onDestroy cleanup - how to DetachCurrentThread

    - by Aristarhys
    So if we attach we must detach thread after after it finish, right? JNIEnv* get_jni_env() { JNIEnv* res; JAVA_VM->GetEnv((void**) &res, JNI_VERSION_1_6);//Using cached JavaVM JAVA_VM->AttachCurrentThread(&res, NULL); return res; } I call next native method from @Override protected void onDestroy() of my Activity class void free_jni_manager() { JNIEnv* env = get_jni_env(); ... //Here i delete global refs (jclass) //JAVA_VM->DetachCurrentThread(); } ERROR: detaching thread with interp frames (count=16) - main thread still running and we try to detach it. Even if we take any function that use JNIEnv (for example calling java methods), putting DetachCurrentThread will cause same error. DetachCurrentThread works flawlessly if used in pthread function static void* thread_func(void* arg) { get_jni_env(); // attach new thread //Do thread stuff JAVA_VM->DetachCurrentThread();//thread done detached it with ok return NULL; } Do we need detach main thread then we done with JNI, there do it? Or then activity will be destroyed, it will freed itself with JavaVM? Do we need do call DestroyJavaVM() (just doing crash if use onDestroy), how free cached JavaVM or garbage cleaner will handle this? P.S. What benefits of using AttachCurrentThreadAsDaemon()

    Read the article

  • How solve consumer/producer task using semaphores

    - by user1074896
    I have SimpleProducerConsumer class that illustrate consumer/producer problem (I am not sure that it's correct). public class SimpleProducerConsumer { private Stack<Object> stack = new Stack<Object>(); private static final int STACK_MAX_SIZE = 10; public static void main(String[] args) { SimpleProducerConsumer pc = new SimpleProducerConsumer(); new Thread(pc.new Producer(), "p1").start(); new Thread(pc.new Producer(), "p2").start(); new Thread(pc.new Consumer(), "c1").start(); new Thread(pc.new Consumer(), "c2").start(); new Thread(pc.new Consumer(), "c3").start(); } public synchronized void push(Object d) { while (stack.size() >= STACK_MAX_SIZE) try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } stack.push(new Object()); System.out.println("push " + Thread.currentThread().getName() + " " + stack.size()); notify(); } public synchronized Object pop() { while (stack.size() == 0) try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } stack.pop(); System.out.println("pop " + Thread.currentThread().getName() + " " + stack.size()); notify(); return null; } class Consumer implements Runnable { @Override public void run() { while (true) { pop(); } } } class Producer implements Runnable { @Override public void run() { while (true) { push(new Object()); } } } } I found simple realization of semaphore(here:http://docs.oracle.com/javase/tutorial/essential/concurrency/guardmeth.html I know that there is concurrency package) How I need to change code to exchange java objects monitors to my custom semaphore. (To illustrate C/P problem using semaphores) Semaphore: class Semaphore { private int counter; public Semaphore() { this(0); } public Semaphore(int i) { if (i < 0) throw new IllegalArgumentException(i + " < 0"); counter = i; } public synchronized void release() { if (counter == 0) { notify(); } counter++; } public synchronized void acquire() throws InterruptedException { while (counter == 0) { wait(); } counter--; } }

    Read the article

  • How to call a method after asynchronous task is complete

    - by doctordoder
    I have a class called WikiWebView which is a subclass of UIWebView which loads Wikipedia subjects and is designed to fetch all the links of the webpage, in order to create a sort of site map for the subject. My problem is that I can only create the links once the web page has loaded, but the loading isn't done right after [self loadRequest:requestObj] is called. - (void)loadSubject:(NSString *)subject { // load the actual webpage NSString *wiki = @"http://www.wikipedia.org/wiki/"; NSString *fullURL = [wiki stringByAppendingString:subject]; NSURL *url = [NSURL URLWithString:fullURL]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [self loadRequest:requestObj]; // [self createLinks]; // need this to be called after the view has loaded } - (void)createLinks { NSString *javascript = @"var string = \"\";" "var arr = document.getElementsByClassName(\"mw-redirect\");" "for (var i = 0; i < arr.length; ++i)" "{" "var redirectLink = arr[i].href;" "string = string + redirectLink + \" \";" "}" "string;"; NSString *links = [self stringByEvaluatingJavaScriptFromString:javascript]; self.links = [links componentsSeparatedByString:@" "]; } I tried the normal delegation technique, which lead to this code being added: - (id)init { if (self = [super init]) { self.delegate = self; // weird } return self; } #pragma mark - UIWebViewDelegate - (void)webViewDidStartLoad:(UIWebView *)webView { ++_numProcesses; } - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { --_numProcesses; } - (void)webViewDidFinishLoad:(UIWebView *)webView { --_numProcesses; if (_numProcesses == 0) { [self createLinks]; } } However, the delegate methods are never called.. I've seen similar questions where the answers are to use blocks, but how would I do that in this case?

    Read the article

  • difference in using virtual and not using virtual

    - by numerical25
    In C++, whether you choose to use virtual or not, you can still override the base class function. The following compiles just fine... class Enemy { public: void SelectAnimation(); void RunAI(); void Interact() { cout<<"Hi I am a regular Enemy"; } private: int m_iHitPoints; }; class Boss : public Enemy { public: void Interact() { cout<<"Hi I am a evil Boss"; } }; So my question is what is the difference in using or not using the virtual function. And what is the disadvantage.

    Read the article

  • c++ protected pointer member to the same class and access privileges

    - by aajmakin
    Hi, Example code is included at the bottom of the message. I'm puzzled about the protected access specifier in a class. I have define a class node which has a protected string member name string name; and a vector of node pointers vector args; Before I thought that a member function of node could not do args[0]-name but a program that does just this does compile and run. However, now I would like to inherit this class and access the name field in one of the args array pointers from this derived class args[0]-name but this does not compile. When I compile the example code below with the commented sections uncommented, the compiler reports: Compiler output: g++ test.cc -o test test.cc: In member function 'void foo::newnode::print_args2()': test.cc:22: error: 'std::string foo::node::name' is protected test.cc:61: error: within this context Compilation exited abnormally with code 1 at Thu Jun 17 12:40:12 Questions: Why can I access the name field of the node pointers in args in class node, because this is what I would excpect from a similarly defined private field in Java. How can I access those fields from the derived class. Example code: #include <iostream> #include <vector> using namespace std; namespace foo { class node; typedef std::vector<node*> nodes; class node { public: node (string _name); void print_args (); void add_node (node* a); protected: nodes args; string name; }; } foo::node::node (string _name) : args(0) { name = _name; } void foo::node::add_node (node* a) { args.push_back(a); } void foo::node::print_args () { for (int i = 0; i < args.size(); i++) { cout << "node " << i << ": " << args[i]->name << endl; } } // namespace foo // { // class newnode : public node // { // public: // newnode (string _name) : node(_name) {} // void print_args2 (); // protected: // }; // } // void foo::newnode::print_args2 () // { // for (int i = 0; i < args.size(); i++) // { // cout << "node " << i << ": " << args[i]->name << endl; // } // } int main (int argc, char** argv) { foo::node a ("a"); foo::node b ("b"); foo::node c ("c"); a.add_node (&b); a.add_node (&c); a.print_args (); // foo::newnode newa ("newa"); // foo::newnode newb ("newb"); // foo::newnode newc ("newc"); // newa.add_node (&newb); // newa.add_node (&newc); // newa.print_args2 (); return 0; }

    Read the article

  • Which way is preferred when doing asynchronous WCF calls?

    - by Mikael Svenson
    When invoking a WCF service asynchronous there seems to be two ways it can be done. 1. public void One() { WcfClient client = new WcfClient(); client.BegindoSearch("input", ResultOne, null); } private void ResultOne(IAsyncResult ar) { WcfClient client = new WcfClient(); string data = client.EnddoSearch(ar); } 2. public void Two() { WcfClient client = new WcfClient(); client.doSearchCompleted += TwoCompleted; client.doSearchAsync("input"); } void TwoCompleted(object sender, doSearchCompletedEventArgs e) { string data = e.Result; } And with the new Task<T> class we have an easy third way by wrapping the synchronous operation in a task. 3. public void Three() { WcfClient client = new WcfClient(); var task = Task<string>.Factory.StartNew(() => client.doSearch("input")); string data = task.Result; } They all give you the ability to execute other code while you wait for the result, but I think Task<T> gives better control on what you execute before or after the result is retrieved. Are there any advantages or disadvantages to using one over the other? Or scenarios where one way of doing it is more preferable?

    Read the article

  • Nested bind expressions

    - by user328543
    This is a followup question to my previous question. #include <functional> int foo(void) {return 2;} class bar { public: int operator() (void) {return 3;}; int something(int a) {return a;}; }; template <class C> auto func(C&& c) -> decltype(c()) { return c(); } template <class C> int doit(C&& c) { return c();} template <class C> void func_wrapper(C&& c) { func( std::bind(doit<C>, std::forward<C>(c)) ); } int main(int argc, char* argv[]) { // call with a function pointer func(foo); func_wrapper(foo); // error // call with a member function bar b; func(b); func_wrapper(b); // call with a bind expression func(std::bind(&bar::something, b, 42)); func_wrapper(std::bind(&bar::something, b, 42)); // error // call with a lambda expression func( [](void)->int {return 42;} ); func_wrapper( [](void)->int {return 42;} ); return 0; } I'm getting a compile errors deep in the C++ headers: functional:1137: error: invalid initialization of reference of type ‘int (&)()’ from expression of type ‘int (*)()’ functional:1137: error: conversion from ‘int’ to non-scalar type ‘std::_Bind(bar, int)’ requested func_wrapper(foo) is supposed to execute func(doit(foo)). In the real code it packages the function for a thread to execute. func would the function executed by the other thread, doit sits in between to check for unhandled exceptions and to clean up. But the additional bind in func_wrapper messes things up...

    Read the article

< Previous Page | 95 96 97 98 99 100 101 102 103 104 105 106  | Next Page >