<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Unreal Engine C++ Fundamentals &#8211; Interfaces!	</title>
	<atom:link href="https://jollymonsterstudio.com/2019/05/30/unreal-engine-c-fundamentals-interfaces/feed/" rel="self" type="application/rss+xml" />
	<link>https://jollymonsterstudio.com/2019/05/30/unreal-engine-c-fundamentals-interfaces/</link>
	<description></description>
	<lastBuildDate>Sat, 01 May 2021 17:28:24 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>
	<item>
		<title>
		By: Dávid		</title>
		<link>https://jollymonsterstudio.com/2019/05/30/unreal-engine-c-fundamentals-interfaces/#comment-1911</link>

		<dc:creator><![CDATA[Dávid]]></dc:creator>
		<pubDate>Sat, 01 May 2021 17:28:24 +0000</pubDate>
		<guid isPermaLink="false">http://jollymonsterstudio.com/?p=3068#comment-1911</guid>

					<description><![CDATA[Hi! 5:05 in my actor file , when I included my Interface file and I wrote that public IMyInterface , I get this errors: 
error C2504: &#039;IMyInterface&#039;: base class undefined.
C3668: &#039;AMyActor::_getUObject&#039;: method with override specifier &#039;override&#039; did not override any base class methods
What&#039;s the problem?
Thanks your answer!]]></description>
			<content:encoded><![CDATA[<p>Hi! 5:05 in my actor file , when I included my Interface file and I wrote that public IMyInterface , I get this errors:<br />
error C2504: &#8216;IMyInterface&#8217;: base class undefined.<br />
C3668: &#8216;AMyActor::_getUObject&#8217;: method with override specifier &#8216;override&#8217; did not override any base class methods<br />
What&#8217;s the problem?<br />
Thanks your answer!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: kaludis		</title>
		<link>https://jollymonsterstudio.com/2019/05/30/unreal-engine-c-fundamentals-interfaces/#comment-1715</link>

		<dc:creator><![CDATA[kaludis]]></dc:creator>
		<pubDate>Tue, 02 Feb 2021 16:16:05 +0000</pubDate>
		<guid isPermaLink="false">http://jollymonsterstudio.com/?p=3068#comment-1715</guid>

					<description><![CDATA[Hey! 
First of all thanks for the helpful post and video.
I just wondered is there any difference between UE UInterface stuff and native C++ virtual function?
I mean we can implement the same functionality using last one:
(Sorry for my imperfect English ;))

// --- Compiled code snippet ---

#include 

class Actor
{
public:
    virtual ~Actor() {}
};

class InteractiveActor
{
public:
    virtual ~InteractiveActor() {}
    
    // Calling private virtual function from non-virtual function
    void Interact() { Interact_Implementation(); };
     
private:
	// Here we declare private virtual function of the i-face
    virtual void Interact_Implementation() = 0;
};

// InteractiveActor i-face powered actor
class InteractiveProp : public Actor, public InteractiveActor
{
private:
    void Interact_Implementation() override { printf(&quot;Wow!\n&quot;); }
};

// Simple actor
class NotInteractiveProp : public Actor
{};

void Filter(Actor* ptr)
{
    InteractiveActor* iptr = dynamic_cast(ptr);
    
    if (iptr)
    {
    	// We have successfully cast Actor-class-pointer-to-InteractiveProp-object to 
        // implementation of InteractiveActor i-face in InteractiveProp object
        iptr-&#062;Interact();
    }
    else
    {
    	// But in the case of Actor-class-pointer-to-NotInteractiveProp-object we have an iptr == nullptr 
        // because NotInteractiveProp does not implement InteractiveActor i-face
    }
}

int main() 
{
    Actor* ptr1 = new InteractiveProp;
    Actor* ptr2 = new NotInteractiveProp;
    
    // This call prints &#039;Wow!&#039;
    Filter(ptr1);
    
    // But not this one
    Filter(ptr2);
}]]></description>
			<content:encoded><![CDATA[<p>Hey!<br />
First of all thanks for the helpful post and video.<br />
I just wondered is there any difference between UE UInterface stuff and native C++ virtual function?<br />
I mean we can implement the same functionality using last one:<br />
(Sorry for my imperfect English ;))</p>
<p>// &#8212; Compiled code snippet &#8212;</p>
<p>#include </p>
<p>class Actor<br />
{<br />
public:<br />
    virtual ~Actor() {}<br />
};</p>
<p>class InteractiveActor<br />
{<br />
public:<br />
    virtual ~InteractiveActor() {}</p>
<p>    // Calling private virtual function from non-virtual function<br />
    void Interact() { Interact_Implementation(); };</p>
<p>private:<br />
	// Here we declare private virtual function of the i-face<br />
    virtual void Interact_Implementation() = 0;<br />
};</p>
<p>// InteractiveActor i-face powered actor<br />
class InteractiveProp : public Actor, public InteractiveActor<br />
{<br />
private:<br />
    void Interact_Implementation() override { printf(&#8220;Wow!\n&#8221;); }<br />
};</p>
<p>// Simple actor<br />
class NotInteractiveProp : public Actor<br />
{};</p>
<p>void Filter(Actor* ptr)<br />
{<br />
    InteractiveActor* iptr = dynamic_cast(ptr);</p>
<p>    if (iptr)<br />
    {<br />
    	// We have successfully cast Actor-class-pointer-to-InteractiveProp-object to<br />
        // implementation of InteractiveActor i-face in InteractiveProp object<br />
        iptr-&gt;Interact();<br />
    }<br />
    else<br />
    {<br />
    	// But in the case of Actor-class-pointer-to-NotInteractiveProp-object we have an iptr == nullptr<br />
        // because NotInteractiveProp does not implement InteractiveActor i-face<br />
    }<br />
}</p>
<p>int main()<br />
{<br />
    Actor* ptr1 = new InteractiveProp;<br />
    Actor* ptr2 = new NotInteractiveProp;</p>
<p>    // This call prints &#8216;Wow!&#8217;<br />
    Filter(ptr1);</p>
<p>    // But not this one<br />
    Filter(ptr2);<br />
}</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: andreas		</title>
		<link>https://jollymonsterstudio.com/2019/05/30/unreal-engine-c-fundamentals-interfaces/#comment-1621</link>

		<dc:creator><![CDATA[andreas]]></dc:creator>
		<pubDate>Sun, 10 Jan 2021 19:31:31 +0000</pubDate>
		<guid isPermaLink="false">http://jollymonsterstudio.com/?p=3068#comment-1621</guid>

					<description><![CDATA[thanks for sharing,
the gifs are top :)]]></description>
			<content:encoded><![CDATA[<p>thanks for sharing,<br />
the gifs are top 🙂</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
